sql >> データベース >  >> RDS >> Oracle

OracleデータベースTNSキー「データソース」の値の長さが「128」の制限を超えています

    データベースへの接続に使用する完全なコードを示していませんが、コメントから別の回答まで、OLEDBを使用しているようです。特にデータソースに対して128文字というやや恣意的な制限があると思われる場合は、使用を避けます。

    また、別の回答者が推奨するように、Oracleクライアントをインストールする必要がないことも指摘しておきます。 「インスタント」クライアントの経験はあまりありませんが、完全なクライアントは大量のダウンロードであり、C#プログラムをOracleに接続するためだけに必要なわけではありません。

    代わりに、Oracle ManagedDataAccessライブラリを使用できます。これは、NuGetを使用してインストールできます。これを行うには:

    • [ツール]>[ライブラリパッケージマネージャー]>[パッケージマネージャーコンソール]に移動します
    • [デフォルトプロジェクト]ドロップダウンリストで正しいプロジェクトが選択されていることを確認してください
    • 入力

      Install-Package odp.net.managed
      

    これにより、NuGetからライブラリをダウンロードし、プロジェクトの参照にOracle.ManagedDataAccessを追加する必要があります。

    次に、usingを追加すると Oracle.ManagedDataAccess.Clientのディレクティブ 、次のコードはOracleデータベースと通信する必要があります:

    string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<service_name>)));User Id=<user>;Password=<password>";
    Console.WriteLine("Connection string has length " + connStr.Length);
    using (var connection = new OracleConnection() { ConnectionString = connStr })
    {
        connection.Open();
        OracleCommand command = new OracleCommand("SELECT * FROM DUAL", connection);
        using (OracleDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine(reader.GetString(0));
            }
        }
    }
    


    1. リバースエンジニアリング(オラクル)スキーマからERDへ

    2. ローカルIISではOracleORA-12154エラーが発生しますが、Visual StudioDevelopmentServerではエラーが発生しません

    3. コロン記号はSQLクエリで何をしますか?

    4. MySQL動的JOIN