PL/SQL连接oracle的问题
各位大侠,我现在用PL/SQL连接oracle数据库时,出现一个问题,具体问题如下:
oracle版本为10.2.0.4.0,是从10.2.0.1.0升级得到的。
当客户端的tnsnames.ora配置为:
aaa =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
)
)
此时PL/SQL可以连接,没有问题。
当tnsnames.ora改为:
aaa =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(service_name = orcl)
)
)
之后,PL/SQL就会出错:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
而我现在有一个程序,已经编译过了,里面默认使用的是service_name,已经不能再改为SID了,请问如何才能使用service_name连接到oracle数据库呢??
------解决方案--------------------oracle版本为10.2.0.1.0,升级到10.2.0.4.0后,还需要升级你的实例
用oracle自带的Database upgrade assistant进行升级,具体操作步骤为:
开始--程序--Oracle--Database upgrade assistant
别的参数不需要修改
------解决方案--------------------同意楼上的,我也遇到过同样的问题
------解决方案--------------------实例我已经升级了,但是service_name就是不能用,我查了一下:
SQL> show parameter ser;
service_names string orcl.hn.modata.com
我在PL/SQL中将service_name写成这个肯定也不行。
请教一下,我怎么将service_name改为orcl,去掉后面的域名呀??
------解决方案--------------------那你把tnsname.ora里面的改为这个行不啊?
------解决方案--------------------把tnsnames.ora中的SID=orcl
改为service_name=orcl 不行 错误:ORA-12514
改为service_name=orcl.hn.modata.com 更不行 错误:ora-12545
------解决方案--------------------那不晓得了,等达人吧。。。
------解决方案--------------------在系统环境变量添加oracle_sid=orcl试试
------解决方案--------------------我没用过10g,不过在9i中,可以直接登录控制台,手工修改服务命名。不知道10g中有没有类似的界面。
------解决方案--------------------mark!
------解决方案--------------------ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
我的是这样的 ,可不可以把SID = orcl SERVICE_NAME = orcl 都写上,可以试试
------解决方案--------------------
已经试过在环境变量中加入,没有效果,错误依旧。