System.Data.OracleClient和.Net Core 2:有时候是附加符号?

问题描述 投票:2回答:1

这是如何重现它:

  1. 制作新的控制台.Net Core 2项目。
  2. 从NuGet添加System.Data.OracleClient。
  3. 用这个更改类程序: class Program { const string testSql = @" SELECT extension, CASE UPPER (EXTENSION) WHEN 'DOC' THEN 'application/msword' WHEN 'DOCX' THEN 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' WHEN 'XLS' THEN 'application/vnd.ms-excel' WHEN 'XLSX' THEN 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' WHEN 'PPT' THEN 'application/vnd.ms-powerpoint' WHEN 'PPTX' THEN 'application/vnd.openxmlformats-officedocument.presentationml.presentation' WHEN 'EPS' THEN 'application/postscript' WHEN 'GIF' THEN 'image/gif' WHEN 'BMP' THEN 'image/bmp' WHEN 'JPG' THEN 'image/jpeg' WHEN 'MP4' THEN 'video/mp4' WHEN 'PDF' THEN 'application/pdf' WHEN 'PNG' THEN 'image/png' WHEN 'PSD' THEN 'image/vnd.adobe.photoshop' WHEN 'TIF' THEN 'image/tiff' WHEN 'TIFF' THEN 'image/tiff' WHEN 'ZIP' THEN 'application/zip' ELSE 'text/plain' END AS mime_type FROM ( select 'bmp' as extension from dual union all select 'jpg' as extension from dual union all select 'tif' as extension from dual union all select 'pdf' as extension from dual union all select 'zip' as extension from dual union all select 'gif' as extension from dual union all select 'txt' as extension from dual )"; const string _connString = "Data Source = mydatabase; User Id = myuser; Password=mypw;Min Pool Size=1;"; static void Main(string[] args) { using (var myconn = new OracleConnection(_connString)) { myconn.Open(); OracleCommand oc = new OracleCommand(testSql, myconn); using (OracleDataReader odr = oc.ExecuteReader(System.Data.CommandBehavior.Default)) { while (odr.Read()) { var s = odr.GetString(odr.GetOrdinal("MIME_TYPE")); Console.WriteLine($"Extension: {odr[0]} Mime type: {odr[1]}"); } } Console.ReadKey(); } } }
  4. 更改数据库,用户和密码并启动程序。

我得到的是这个:

Extension: bmp  Mime type: image/bmp?
Extension: jpg  Mime type: image/jpeg?
Extension: tif  Mime type: image/tiff?
Extension: pdf  Mime type: application/pdf
Extension: zip  Mime type: application/zip
Extension: gif  Mime type: image/gif?
Extension: txt  Mime type: text/plain?

看着那(这 '?'在某些行的末尾。问题是:这是我的Oracle客户端上的错误还是在System.Data.OracleClient中?

oracle .net-core .net-core-2.0
1个回答
2
投票

我们遇到了同样的问题。这是system.data.oracleclient中的一个问题。所以我们使用了基于System.Data.OracleClient mono项目的非官方库:https://github.com/ericmend/oracleClientCore-2.0这确实解决了额外符号的问题,但System.Data.Oracleclient读取大数据的速度非常慢,因为很久以前它已被弃用但直到oracle发布.net核心的官方客户端,可用于小型数据集。

请看这个帮助我们的类似帖子:.NET Core 2 + System.Data.OracleClient. Chinese characters doesn't work

© www.soinside.com 2019 - 2024. All rights reserved.