5

我是使用数据库的初学者。我正在尝试从 ac# 应用程序访问 Oracle10g 数据库。但是当我这样做时,我得到了这个错误:

ORA-12154: TNS: 无法解析指定的连接标识符”

我正在使用以下代码:

string oradb = "Data Source=ORCL;User Id=system;Password=goodbye;";
OracleConnection conn = new OracleConnection(oradb);  // C#
conn.Open();

连接字符串中是否有错误oradb

4

3 回答 3

7

启动Visual Studio,打开View菜单 + 服务器资源管理器。

  1. 鼠标右键单击Data Connection+ Add Connection+ 选择Oracle Database
  2. 服务器名称:localhostname of your machine,设置用户名和密码并单击测试连接以验证上述参数。如果测试成功,请按 OK。

从属性窗口中,您可以获得连接字符串,它应该看起来像:

Data Source=localhost;Persist Security Info=True;User ID=scott;Password=***********;Unicode=True
于 2012-09-16T07:47:19.817 回答
0

Oracle 只是说它找不到数据库。

如果您正在运行本地Express Edition数据库,您应该可以只XE用作实例名称,并且所有内容都应该已经设置好,否则您可以最轻松地将其添加到tnsnames.ora.

要找到正确tnsnames.ora的更改,您可以尝试(从命令提示符)

tnsping ORCL

这将告诉您 Oracle 正在使用哪些文件来尝试查找数据库。如果tnsping是未知命令,您可能需要搜索它并在运行它之前转到正确的位置。

您找到正确的一个tnsnames.ora,您需要将实例添加ORCL到其中。应该有一个包含示例的现有文件,该文件的语法太复杂,无法在这里回答,如果您需要帮助,Oracle 有相当广泛的文档

于 2012-09-16T08:14:18.353 回答
0

这是一个非常常见的 oracle 错误。简而言之,这意味着您已经命名了要连接的数据库,而 Oracle 不知道您在说谁。我建议修复 ORA-12154 的 6 个步骤:

  1. 检查实例名称是否已在 tnsnames.ora 中正确输入。
  2. 实例或数据库名称的末尾不应有控制字符。
  3. TNS 条目周围的所有括号都应正确终止
  4. sqlnet.ora 中的域名条目不应与完整的数据库名称冲突。
  5. 如果问题仍然存在,请尝试在 tnsnames.ora 中重新创建 TNS 条目。
  6. 最后,您可以使用 SQL*Net Easy 配置实用程序添加新条目。

有关 oracle 网站或此处的更多信息:http: //turfybot.free.fr/oracle/11g/errors/ORA-12154.html

于 2013-02-17T16:36:45.700 回答