现在的位置: 首页 > 综合 > 正文

ora-12154 TNS:无法处理服务名

2011年10月22日 ⁄ 综合 ⁄ 共 1050字 ⁄ 字号 评论关闭
有时候怎么配置TNSNAMES.ORA都出现ora-12154
TNS:无法处理服务名的错误!其实根据oracle的版本的不同,配置的字符串也有所不同。比如:oracle8.1.5的SQLNET.ORA文件的内容是这样的:路径:orant\NET80\ADMIN\SQLNET.ORATRACE_LEVEL_CLIENT
= OFF
#sqlnet.authentication_services = (NONE)
names.directory_path =
(TNSNAMES, HOSTNAME)
names.default_domain = world
name.default_zone =
world
automatic_ipc = off所以服务名后面都要加上.world,比如:CARD.WORLD =
(DESCRIPTION
=
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521))

(CONNECT_DATA = (SID = CARD))
)
但是在oracle9i下则要这样配置:CARD =

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.0.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)

(SERVICE_NAME = CARD)
)

)oracle9i的SQLNET.ORA是这样的:路径:oracle\ora92\network\admin\SQLNET.ORA#
SQLNET.ORA Network Configuration File: C:\oracle\ora92\network\admin\sqlnet.ora

# Generated by Oracle configuration tools.SQLNET.AUTHENTICATION_SERVICES=
(NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES,
HOSTNAME)所以如果按照oarcle8.1.5的配置参考oracle9i的配置,显然是不对的。因为oracle8.1.5中的SQLNET.ORA文件定义了服务名必须要有.world根据oracle版本,
SID 可能是要改成service_name。
参考一下listener.ora的global_name.确定在sqlnet.ora里,names.default_domain设置空字符。排除了这些应该没什么问题了。

抱歉!评论已关闭.