尝试连接时没有使用tnsnames连接TNS listner错误#
问题描述:
我试图连接到oracle数据库而不必使用TNS名称,但它一直给出这个错误:{“ORA-12504:TNS:listener was not given在CONNECT_DATA“的SERVICE_NAME}尝试连接时没有使用tnsnames连接TNS listner错误#
string oradb = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=105.1.12.190)(PORT=1521))(CONNECT_DATA=(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名称' 文件:
OMP1=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=105.1.12.193)
(PORT=1521)
)
(CONNECT_DATA=
(SID=OMP1)
)
)
答
您有冲突的IP地址(0.193对比.190)。此外,您正在使用TNS名称文件中的SID名称进行连接,但在字符串中使用了SERVICE名称。这可能会或可能不会工作。尝试在连接字符串中指定(SID = OMP1)。
答
使用下面的连接字符串:
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