java dblink调用存储过程_通过dblink执行代码时遇到的问题

创建DBLINK的疑惑

创建DBLINK的代码:

create database link test

connect to test identified by test

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)' ;

后执行代码查询正确:select * from 表名@test

但这句代码在执行时出错:insert into ) values(1)

改为下面代码执行成功:

insert into ) values(1)

在执行存储过程时出错提示(存储过程用到dblink连接的表):

ORA-06029 此次操作的global_names 参数必须设置为true

查看global_names值代码:show parameter global_name;

修改global_names值代码:alter system set global_names=true;--慎重

将global_names 参数改为true后

该参数为true时,你在本地建立的DBLINK的名称必须和远程的Global_name一致才行

根据这句话,我将创建的dblink删了,重新创建dblink名为:ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM(远程的Global_name)在创建DBLINK时报错:“ORA-02082 回送数据库链接必须具有连接限定词”

在网上查到的原因如下:

ORA-02082 a loopback database link must have a connection qualifier

Cause: An attempt was made to create a database link with the same name as the current database.

Action: This database link needs a trailing qualifier to make the name unique. These qualifiers are operating system-specific. See your operating system-specific Oracle documentation for more information about creating database links.

原因是两个oracle的global_name相同,将两个oracle的global_name改为不同的名称,问题解决。

修改global_name代码:

update global_name set global_name='ORCL';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值