System.Data.OracleClient和.Net Core 2:有时会添加符号吗?

System.Data.OracleClient和.Net Core 2:有时会添加符号吗?,oracle,.net-core,.net-core-2.0,Oracle,.net Core,.net Core 2.0,下面是如何复制它: 创建新的console.NETCore2项目 从NuGet添加System.Data.OracleClient 使用以下命令更改课程计划: class Program { const string testSql = @" SELECT extension, CASE UPPER (EXTENSION) WHEN 'DOC' THEN 'application/msword'

下面是如何复制它:

  • 创建新的console.NETCore2项目
  • 从NuGet添加System.Data.OracleClient
  • 使用以下命令更改课程计划:

    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();  
            }  
        }  
    }  
    
  • 更改数据库、用户和密码并启动程序

  • 我得到的是:

    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中?

    我们面临同样的问题。这是system.data.oracleclient中的一个问题。因此,我们使用了这个基于System.Data.OracleClient mono项目的非官方库: 这确实解决了附加符号的问题,但System.Data.Oracleclient读取大数据的速度非常慢,因为它早就被弃用了,但在oracle发布官方的.net core客户端之前,它可以用于小数据集


    请看这篇帮助我们的类似文章:

    名称空间
    System.Data.OracleClient
    适合年龄。你不应该使用它。当您使用受支持并进一步开发的Oracle提供程序时,是否会遇到同样的问题?@Wernfried没有针对.Net Core 2的Oracle提供程序。我们正在等待甲骨文的到来。为什么被移植到.Net标准,什么时候被弃用?我不知道,问问微软他们为什么停止开发。托管驱动程序似乎有一些希望:@WernfriedDomscheit我不问,为什么他们停止了开发,但为什么他们将它移植到.Net标准,当它被弃用时。当被移植时,至少应该工作。关于Oracle,我记得我们为ODP.Net等了3年。现在距离我们等待.Net核心版本只有1.5年了。他们还有时间。我得出这个结论是因为我已经测试了它,它确实解决了这个问题中提出的问题。我不知道为什么投票失败。为了更清楚,我更新了我答案中的几个词。