1

.Net(3.5)C#およびOracleExpress10gでアプリケーションを開発しています。データベースに接続しようとすると、次のエラーが発生しました。

取得したOracleConnectionオブジェクトから、ServerVersionプロパティで次のようになります。

ServerVersion = 'conn.ServerVersion' produjo una excepción de tipo 'System.InvalidOperationException'

そして、キャッチで:

ORA-12154: TNS:could not resolve the connect identifier specified

この接続文字列を使用しています:

Data Source=Angelo-HP/XE;User ID=MAPFRE;Password=123456;

私のtnsnames.oraが設定されています:

XE =
  (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = Angelo-HP)(PORT = 1521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = XE)
  )
)

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
  )
  (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
  )
)

ORACLR_CONNECTION_DATA = 
(DESCRIPTION = 
  (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
  ) 
  (CONNECT_DATA = 
    (SID = CLRExtProc) 
    (PRESENTATION = RO) 
  ) 
) 

そして私のsqlnet.oraはこのようになります:

SQLNET.AUTHENTICATION_SERVICES = (NTS) NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, HOSTNAME)

なぜ私は接続できないのですか?

ありがとう。

4

2 に答える 2

0

私のコメントに記載されているように、Datasource-propertyをXEに変更する必要があります。

Data Source=XE;User ID=MAPFRE;Password=123456;

また、tnsnamesの識別子の前にスペースがないことを確認する必要があります。

別のこと:複数のoracle-clientsがインストールされている場合は、このエントリが正しいtnsnamesにあることを確認する必要があります。

于 2012-09-17T06:31:05.700 に答える
0

接続文字列は次のように言及されています

Data Source=Angelo-HP/XE;User ID=MAPFRE;Password=123456;

つまり、TNS 名に存在しない Angelo-HP/XE の TNSNAME を探しているため、エラー メッセージが表示されます。

に変更します

Data Source=XE;User ID=MAPFRE;Password=123456;
于 2012-09-17T06:11:42.440 に答える