2

私は .Net Windows アプリケーションで作業しています。App.Config では、このような接続文字列を指定していました...

<add connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521)))(CONNECT_DATA=(SID=PROD)(SERVER=DEDICATED)));User Id=TEST;Password=TEST;" providerName="System.Data.OracleClient" name="ConnectionString" />

更新手続きを行っています。ブレークポイントが更新メソッドに到達すると、次のようなメッセージが表示されます..

ORA-12504: TNS: リスナーにCONNECT_DATAのSERVICE_NAMEが指定されていません

これはどうすればいいの...

私の tnsnames.ora は、

PROD =  (DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = Prod)
)

)

4

2 に答える 2

0

Oracle 接続の接続文字列を指定するときは、サービス名を指定する必要があり、残りの情報はそのサービス名から読み込まれます。Romil がコメントで述べたように、tnsnames.ora でサービス名を作成する必要があります。サービス名を作成するための GUI ツールがあります。サービス名は、概念的には、接続に必要なすべてが提供される接続指定子です。詳細情報を取得するには、これを使用してください: Oracle Net接続のクイック・スタート

于 2012-06-04T14:52:17.237 に答える
0

例を挙げると、これは、ODP.NET プロバイダー/ドライバーを介して Oracle データベースに接続するために ASP.NET 4.0 アプリケーションで使用している接続文字列です。

<add 
    name="oraOdpNet" 
    connectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.101)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))); User Id=TEST; Password=TEST" 
    providerName="system.data.oracleclient" />

外部の「tnsnames.ora」ファイルには絶対に依存したくありませんでした。

于 2012-06-04T15:01:06.350 に答える