日期:2014-05-17  浏览次数:20962 次

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 都写上,可以试试
------解决方案--------------------
引用:
在系统环境变量添加oracle_sid=orcl试试


已经试过在环境变量中加入,没有效果,错误依旧。