
在程序中访问数据库,该程序和 oracle 数据库在同一台主机(服务器)上,但是,运行程序时,报错:
ORA-12154: TNS:could not resolve the connect identier specied
oracle 数据库服务器端:
# listener.ora Network Conguration File:
/opt/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle conguration tools.
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
-------
# tnsnames.ora Network Conguration File:
/opt/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle conguration tools.
~ = ~
FLOWRT =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP 地址 1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = AAA)
)
)
-------
1,确定监听器已经起来
2,
[oracle@localhost admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production>
--------------------------------------------------------------------------------
客户端在异机试一试,你的监听器不一定起来了,因为本地通信可能不会通过监听器连接(而使用进程间
通信),你的 sqlplus /nolog 就是用进程间通信连接的。在主机执行 $ORACLE_HOME/bin/lsnrctl
status 试一下,看看监听器到底起没起来.
--------------------------------------------------------------------------------
监听器确定起来了,因为将这个访问数据库的程序放到另外一台主机中,该程序能正常的执行,并完成对
数据库的操作。
--------------------------------------------------------------------------------
如果是这样,说明 listener 没有问题,你同一台主机上运行程序有可能没有通过监听器连接,试一试将程