2014-09-29 94 views
0

我表演一个OracleConnection联系一个遥远的数据库,如:ORA-12154:TNS:指定连接标识符无法解析

OracleConnection conn = new OracleConnection("Data Source=(DESCRIPTION(ADDRESS_LIST=(PROTOCOL=TCP)(HOST=XX.XX.XX.XX)(PORT=XXXX)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXXX));User Id=XX_XXX_XXX; Password=XXXXXXXXXXX"); 

隐藏每个信息是正确的,对应于Oracle数据库。

当我做conn.Open();我有错误:ORA-12514:TNS:指定连接标识符无法解析

我听说这可能是因为TNSNAMES.ORA的我已经复制/过去的tnsnames。一位同事的ORA对我而言没有任何改变。

我在许多论坛和网站上搜索过,没有人似乎得到我的答案。

在此先感谢您的帮助。

Greetings,

Flo。

EDIT1:

尝试过在命令行一个SQLPLUS连接后,它的工作。视觉工作室似乎是问题所在?

+0

听者是否开始?运行'lsnrctl status',请显示输出。 – zaratustra 2014-09-29 13:13:49

+0

我想你是指Oracle数据库的监听者?我无法访问它,但我可以打电话问问他们。我很快就回来了。谢谢。 – Flo 2014-09-29 13:19:35

+0

您需要在您的机器上的TNSnames.ora文件中添加此连接字符串。 – Rex 2014-09-29 13:58:40

回答

1

检查您的连接字符串。看起来好像你缺少一对圆括号:

OracleConnection conn = new OracleCollection("Data Source=((DESCRIPTION(ADDRESS_LIST=(PROTOCOL=TCP)(HOST=XX.XX.XX.XX)(PORT=XXXX)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XXXXX)));User Id=XX_XXX_XXX; Password=XXXXXXXXXXX");

+0

我认为这是一个失败重写,我没有复制粘贴。我检查了这一点。 – Flo 2014-09-29 13:27:57

+0

这不是一个失败,我真的忘了一对括号。但它并没有改变。我仍然有错误。 – Flo 2014-09-29 13:55:26

+0

乍看之下:在描述关键字之后,你还缺少一个en等号:'DESCRIPTION =(...' – oGJo 2014-09-29 14:07:36

相关问题