.NETとOracleClientの+ TNSless接続
-
18-09-2019 - |
質問
私たちは、Oracleに接続するSystem.Data.OracleClient.dllへと抽象基底クラスたDbConnection、たDbCommand(など)を使用しています。
接続は、当社の開発段階では正常に動作します。ステージングの間、我々は、エラーORA-12514が発生した:TNSは:リスナーは現在、接続記述子で要求されたサービスを認識していません。
。私たちの目標は、TNSエントリせずに接続することで、接続文字列内のすべての関連情報を提供する(www.connectionstrings.com/oracle#19)
私はそのSQLを確認することができますプラス(リスナーがリスニング)ステージングサーバーから必要なスキーマに接続します。 SQLPlusをにフックTNSエントリは、構築されるクエリ文字列のすべての資格情報と一致します。
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
私たちは逃したサーバーへのインストールはありますか?我々は微調整することができます何か?
すべてのヘルプは高く評価されます。
解決
SIDがサービス名ではありません。 SIDが短い識別子でありながら、サービス名は、通常、完全修飾されたデータベース名です。
あなたのSIDがdbnameにいる間にサービス名はdbname.company.comかもしれません。インスタンスは、実際には、それに関連するいくつかのサービス名を持っていますが、唯一のSIDができます。
あなたの接続文字列内のSIDにあなたのSERVICE_NAMEを変更、またはSERVICE_NAMEのオプションについては、サービス名を指定します。
他のヒント
、私は同じ問題がありました。一般的なものは、常にすべてのケースで正しいプロバイダをインスタンス化しません。
MicrosoftはSystem.Data.OracleClient.dllへの非推奨しました http://blogs.oracle.com/databaseinsider/2009/:この記事を参照してください。 07 / microsoft_deprecates_systemdataoracleclient_net_developers_for_oracle_should_migrate_to_oracle_data_provider_for_net.htmlする
は、あなたも( EZCONNECT を使用することができました簡易接続ネーミング・メソッドの略A>)。あなたの接続文字列は次のようになります:
"Data Source=MyHost:MyPort/MyServiceName;User ID=myUserName;Password=myPassword"
<のhref = "https://stackoverflow.com/questions/70602/what-is-the-minimum-client-footprint-required-to-connect-c-to-an-oracle-database/と組み合わせます70901" #70901> Oracleインスタントクライアントに、それは、Oracleの使用がほとんどプロ感じさせる!...