3

System.Data.OracleClientと抽象基本クラスDbConnection、DbCommand(など)を使用してOracleに接続しています。

接続は、開発段階で正常に機能します。ステージング中に、エラーORA-12514が発生します。TNS:listenerは現在、接続記述子で要求されたサービスを認識していません。

私たちの目標は、TNSエントリなしで接続し、接続文字列(www.connectionstrings.com/oracle#19)ですべての関連情報を提供することでした。

SQL plusがステージングサーバーから目的のスキーマに接続することを確認できます(リスナーがリッスンしています)。SQLPlusにフックされたTNSエントリは、構築されているクエリ文字列のすべての資格情報と一致します。

SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;

見逃したサーバーにインストールはありますか?微調整できることはありますか?

どんな助けでも大歓迎です。

4

4 に答える 4

7

SIDはサービス名ではありません。サービス名は通常、完全修飾データベース名ですが、SIDは短い識別子です。

SIDがdbnameであるのに対し、サービス名はdbname.company.comである可能性があります。インスタンスには、実際には複数のサービス名を関連付けることができますが、SIDは1つだけです。

接続文字列でSERVICE_NAMEをSIDに変更するか、SERVICE_NAMEオプションにサービス名を指定します。

于 2009-09-29T15:00:42.380 に答える
0

正しく思い出せば、OracleプロバイダーとOracleDbConnectionおよびOracleDbCommandの使用に切り替えるまで、同じ問題が発生していました。一般的なものは、すべての場合に常に正しいプロバイダーをインスタンス化するとは限りません。

于 2009-09-29T14:12:36.103 に答える
0

MicrosoftはSystem.Data.OracleClientを非推奨にしました。次の記事を参照してください:http://blogs.oracle.com/databaseinsider/2009/07/microsoft_deprecates_systemdataoracleclient_net_developers_for_oracle_should_migrate_to_oracle_data_provider_for_net.html

于 2009-09-29T14:14:52.810 に答える
0

Oracleクライアントがバージョン10以降の場合は、EZCONNECT ( Easy Connectの命名方法の略)を使用することもできます。接続文字列は次のようになります。

"Data Source=MyHost:MyPort/MyServiceName;User ID=myUserName;Password=myPassword"

Oracle Instant Clientと組み合わせると、 Oracleの使用がほぼプロフェッショナルに感じられます!...

于 2009-09-30T07:35:05.017 に答える