0

TNS 名を使用せずに Oracle DB に接続しようとしていますが、次のエラーが発生し続けます: {"ORA-12504: TNS:listener was not given the SERVICE_NAME in CONNECT_DATA"}

string oradb = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=105.1.12.190)(PORT=1521))(CONNECT_D‌​ATA=(SERVICE_NAME=OMP1)));User ID=user;Password=pass;";

OracleConnection conn = new OracleConnection(oradb); // C#

conn.Open();

OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT cast(Count(*) as varchar(20)) as trig FROM ZDMSN.TRIGGER_TEST";

「TNS Names」ファイルの内容は次のとおりです。

OMP1=
(DESCRIPTION=
   (ADDRESS=
      (PROTOCOL=TCP)
         (HOST=105.1.12.193)
            (PORT=1521)
      )
 (CONNECT_DATA=
    (SID=OMP1)
    )
 )
4

2 に答える 2

0

IP アドレスが競合しています (.193 と .190)。また、TNS 名ファイルでは SID 名で接続していますが、文字列ではサービス名を使用しています。それはうまくいかないかもしれません。接続文字列で (SID=OMP1) を指定してみてください。

于 2013-04-12T00:08:47.190 に答える
0

次の接続文字列を使用します。

string cadenaDeConeccion = "User Id=AAA111;Password=BBB222;Data Source=CCC333;Connection Timeout=60;Pooling=false"

あなたの場合、次のようになります。

string cadenaDeConeccion = "User Id=AAA111;Password=BBB222;Data Source=OMP1;Connection Timeout=60;Pooling=false";

詳細については、次のリンクを参照してください。

http://www.systemdeveloper.info/2013/10/oracle-tnsnamesora-network-configuration.html

于 2013-12-13T19:22:21.660 に答える