PL/SQL连接oracle的有关问题

PL/SQL连接oracle的问题各位大侠,我现在用PL/SQL连接oracle数据库时,出现一个问题,具体问题如下:oracle版

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试试


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


[解决办法]

引用:
我的是这样的 ,可不可以把SID = orcl? SERVICE_NAME = orcl 都写上,可以试试


两个都写上也不行,好像是首先去找的service_name,所以提示的错误还是ora-12514

我想请教一下,如何将oracle数据库的service_name进行修改呢???
[解决办法]
好方法:
重新装一个ORACLE ,我刚装个,比较熟悉
把SID 该成service_name!
[解决办法]
引用:
好方法:
重新装一个ORACLE ,我刚装个,比较熟悉
把SID 该成service_name!


重新安装早就考虑过了,但这是不可行的,这是生产系统,有几万用户在使用。
[解决办法]
这个不错哦
[解决办法]
你是用的sid,用service_name
[解决办法]
如果数据库有域名,则数据库服务名(service_names)就是全局数据库名;否则,服务名与数据库名相同
全局数据库名=数据库名+数据库域名(db_domain)
你把数据库域名改为空,再用service_name = orcl试试

[解决办法]
引用:
你是用的sid,用service_name


我现在想要使用service_name,但不能,总提示ora-12514的错误,只有换成SID才可以。

不过我必须得用Service_name,不知道怎么才能使用。
[解决办法]
引用:
oracle版本为10.2.0.1.0,升级到10.2.0.4.0后,还需要升级你的实例

用oracle自带的Database upgrade assistant进行升级,具体操作步骤为:
开始--程序--Oracle--Database upgrade assistant
别的参数不需要修改


try again
[解决办法]
我的是这样的,可以参考下 我估计是你的那个SERVER有问题
ngstst =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 100.22.67.98)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ngbiltst)
    )
  )
[解决办法]
路过。
[解决办法]
试试对ocrl数据库重新配置一个service_name
[解决办法]
没遇见过,回去尝试一下。
[解决办法]
biao ji
[解决办法]
关注中! Ing 
[解决办法]
guan zhu
[解决办法]
没有与讲过你说的问题看!你说的程序是什么程序?前台应用不会用到oracle底层的配置吧!
[解决办法]
关注中!
[解决办法]
mark
[解决办法]
你数据库的SID和servic_names 值是一样吗。如果是
aa= 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 100.22.67.98)(PORT = 1521)) 
    (CONNECT_DATA = 


      (SERVER = DEDICATED) 
      (SERVICE_NAME = sid) 
    ) 
  )
应该没问题的,不一样的就后面
server_name= 全局数据库的值
就行啦
[解决办法]
好像上次就有人问过了。。。
[解决办法]
升级你的数据库实例
[解决办法]
学习了 谢谢
[解决办法]
学习~
[解决办法]
up