Oracle 表单:TNS:无法解析指定的连接标识符
Oracle forms: TNS: could not resolve the connect identifier specified
我的计算机上安装了 oracle 企业版和 oracle forms,当我从 sqlplus 和 sqldevelopper 连接到我的数据库时,它连接没有错误,但是当我尝试从 oracle forms 连接时,它给我这个错误:
ORA-12154:could not resolve the connect identifier specified
我在网上看过,我在某处读到这可能是因为我的计算机上安装了多个 oracle 客户端,而 sqlplus 使用了正确的文件,而 oracle forms 使用了不正确的文件,我认为这是我的情况,因为我有两个 tnsnames.ora 文件:
在这里:
C:\oracle\product.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
在这里:
C:\oracle\product.2.0\NETWORK\ADMIN\SAMPLE
这是第一个 tnsnames.ora 文件的内容:
# tnsnames.ora Network Configuration File: C:\oracle\product.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = BOUHDID.Home)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
如果是这样,我该如何解决?
我通过执行以下步骤解决了我的问题:
- 已卸载 Oracle 文件和报告。
- 已使用通用安装程序卸载 Oracle 数据库。
- 删除了与 oracle 关联的所有注册表和服务。
- 重新安装了 Oracle 数据库。
- 重新安装了 oracle 表单和报告。
- 从我位于
的 tnsnames.ora 文件复制
C:\oracle\product.2.0\db_1\NETWORK\ADMIN
到位于 C:\orant\NET80\ADMIN
的 tnsnames.ora 文件
这部分:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = BOUHDID)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
它就像一个魅力。
您可以只设置 TNS_ADMIN
环境变量。
这个 alawys 指向 tnsnames.ora 目录。所有 oracle 产品都会查看此变量。
因此您只需将 TNS_ADMIN
设置为:
C:\oracle\product.2.0\db_1\NETWORK\ADMIN
我的计算机上安装了 oracle 企业版和 oracle forms,当我从 sqlplus 和 sqldevelopper 连接到我的数据库时,它连接没有错误,但是当我尝试从 oracle forms 连接时,它给我这个错误:
ORA-12154:could not resolve the connect identifier specified
我在网上看过,我在某处读到这可能是因为我的计算机上安装了多个 oracle 客户端,而 sqlplus 使用了正确的文件,而 oracle forms 使用了不正确的文件,我认为这是我的情况,因为我有两个 tnsnames.ora 文件: 在这里:
C:\oracle\product.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
在这里:
C:\oracle\product.2.0\NETWORK\ADMIN\SAMPLE
这是第一个 tnsnames.ora 文件的内容:
# tnsnames.ora Network Configuration File: C:\oracle\product.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = BOUHDID.Home)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
如果是这样,我该如何解决?
我通过执行以下步骤解决了我的问题:
- 已卸载 Oracle 文件和报告。
- 已使用通用安装程序卸载 Oracle 数据库。
- 删除了与 oracle 关联的所有注册表和服务。
- 重新安装了 Oracle 数据库。
- 重新安装了 oracle 表单和报告。
- 从我位于 的 tnsnames.ora 文件复制
C:\oracle\product.2.0\db_1\NETWORK\ADMIN
到位于 C:\orant\NET80\ADMIN
的 tnsnames.ora 文件
这部分:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = BOUHDID)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
它就像一个魅力。
您可以只设置 TNS_ADMIN
环境变量。
这个 alawys 指向 tnsnames.ora 目录。所有 oracle 产品都会查看此变量。
因此您只需将 TNS_ADMIN
设置为:
C:\oracle\product.2.0\db_1\NETWORK\ADMIN