2017-11-09 15 views
2

ここにそれを再現する方法です:System.Data.OracleClientおよび.Net Core 2:追加シンボルは何度か?

  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. 変更DB、ユーザとパスワードとプログラムを起動します。

私は何を取得することは、これは次のとおりです。で

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にありますか?

+1

名前空間 'System.Data.OracleClient'は([非推奨]されhttps://docs.microsoft.com/en-us/dotnet/framework/data/:

私たちを助け、この同様の記事を参照してください。 adonet/oracle-and-adonet)があります。あなたはそれを使用すべきではありません。サポートされ、さらに開発されたOracleプロバイダを使用する場合、同じ問題が発生しますか? –

+0

@Wernfried .Net Core 2用のOracleプロバイダーはありません。オラクルがそれを実現するのを待っています。 .Net Standardに移植されるのはなぜですか? – Mottor

+0

私には分かりませんが、マイクロソフト社になぜ開発が中止されたのか尋ねてください。マネージド・ドライバーには、[ステートメント・オブ・ディレクション:ODP.NET for Microsoft .NET Core](http://www.oracle.com/technetwork/topics/dotnet/tech-info/odpnet-dotnet-ja/) core-sod-3628981.pdf) –

答えて

2

同じ問題が発生しました。これはsystem.data.oracleclientの問題です。したがって、System.Data.OracleClientモノプロジェクトに基づくこの非公式のライブラリを使用しました。https://github.com/ericmend/oracleClientCore-2.0 これは追加のシンボルの問題を解決しますが、System.Data.Oracleclientは大量のデータを読み込むのがずっと遅いですが、 .netコアの公式クライアントをリリースしました。これは、小さなデータセットに使用できます。 .NET Core 2 + System.Data.OracleClient. Chinese characters doesn't work

+0

これは本当に質問に答えません。別の質問がある場合は、[質問する](https://stackoverflow.com/questions/ask)をクリックして質問することができます。十分な[評判](https://stackoverflow.com/help/)があれば、この問題にもっと注意を払うために[奨励金を追加](https://stackoverflow.com/help/privileges/set-bounties)することもできます何が評判か)。 - [レビューの投稿](レビュー/低品質の投稿/ 18343409) –

+0

私はそれをテストしたのでこの結論に来ました。なぜdownvoteがわからないのですか?私は私の答えでいくつかの言葉をもっと明確に更新しました。 – p4ulinux

関連する問題