李贤威博客,三国创世录,泥鳅养殖利润
谈到ora-12154问题,网上有一大堆解决方法,原因基本统一:tns或listener配置不正确。对于listener配置不正确的一般较少发生,大多数人都是按照默认配置一路“下一步”过来的,基本都是orcl的服务名,如果说本地可以连通orcl,别的机子就连不通那应该跟listener关系不大。大部分都是tns配置不正确。我遇到的现象是:在本机建了一个2003的虚拟机,虚拟机里面装了oracle10g,默认配置。本机只装了oracle10g的客户端,当我以前用本机连接局域网内数据库的orcl服务(数据库与局域网内数据库一样)时没有问题,但是在连接虚拟机中的orcl服务却连不通,总是报ora-12154错误。而虚拟机内,plsql却可以连接虚拟机oracle,但是不能连接本机所在局域网内的oracle。
按照如下过程,一般都能解决:
虚拟机listener:
sid_list_listener = (sid_list = (sid_desc = (global_dbname = test) 自定义服务名 (oracle_home = e:\oracle\product\10.2.0\db_1) db_home (sid_name = test) ) (sid_desc = (program = extproc) (sid_name = plsextproc) (oracle_home = e:\oracle\product\10.2.0\db_1) ##这个服务保证你可以使用外部过程,如c程序 ) )
本机tns:
orcl_xnj = (description = (address_list = (address = (protocol = tcp)(host = 182.12.15.232)(port = 1521)) ) (connect_data = (service_name = test) 与自定义服务名对应 ) )
再次连接,问题解决!
记住,一定从最简单的原因找起,不要一上去就看到网上的什么改process数、注册表之类的,要想想本机能连为什么通过网络就不行,还是定位问题。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Oracle字符串函数length、upper、lower、initcap、 concat、instr、replace
网友评论