我正在尝试使用c#中的ODBC连接到远程Oracle数据库。
我制作了一个重现错误的测试代码
String sql = "SELECT * FROM ALL_TABLES";
OdbcConnection conn = new OdbcConnection();
conn.ConnectionString = "Driver={Oracle in instant_client_12};Server=192.168.56.101;Uid=SYS;Pwd=somepassword;";
conn.Open();
OdbcCommand command = conn.CreateCommand();
command.CommandText = sql;
System.Data.DataTable dt = new System.Data.DataTable();
OdbcDataAdapter da = new OdbcDataAdapter(command);
da.Fill(dt);
conn.Close();
Console.WriteLine("Filas: "+dt.Rows.Count);
Console.ReadKey();
我在第4行得到了下一个错误,conn.Open()
ERROR [HY000] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error
ERROR [IM006] [Microsoft][Administrador de controladores ODBC] Error de SQLSetConnectAttr del controlador
ERROR [HY000] [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error
sqlplus工作正常
sqlplus.exe SYSTEM / somepassword @ PRUEBA
SQL * Plus:于2015年3月26日星期四19:45:37发布12.1.0.2.0版本
版权所有(c)1982,2014,Oracle。保留所有权利。
并且PRUEBA = 192.168.56.101,在tnsname.ora中设置
任何人都知道会发生什么?我需要一些帮助。谢谢你的时间
答案 0 :(得分:0)
查看你的连接字符串:
conn.ConnectionString = "Driver={Oracle in instant_client_12};Server=192.168.56.101;Uid=SYS;Pwd=somepassword;";
您不指定任何数据库名称,只指定服务器。服务器可能托管多个Oracle DB。
尝试以下其中一项
conn.ConnectionString = "Driver={Oracle in instant_client_12};DBQ=PRUEBA;Uid=SYS;Pwd=somepassword;";
conn.ConnectionString = "Driver={Oracle in instant_client_12};CONNECTSTRING=PRUEBA;Uid=SYS;Pwd=somepassword;";
conn.ConnectionString = "Driver={Oracle in instant_client_12};Server=PRUEBA;Uid=SYS;Pwd=somepassword;";