(原创)同时使用database link和本地序列插远程数据表时报ORA-02069

同时使用database link和本地序列插远程数据表时报ORA-02069

今天遇到同时使用database link和本地序列插远程数据表时报ORA-02069:global_names parameter must be set to true for this operation
环境:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
语句如下:
INSERT INTO tb_cust_account_rel@dblink_to_data_pub
  (n_id,
  v_cust_type,
  v_expr_org_id,
  v_bank_org_id,
  v_cust_id,
  v_send_status,
  v_bank_account_name,
  v_reg_bank,
  v_bank_account,
  v_id_card_no,
  v_acc_status,
  v_acc_status_note,
  v_is_use,
  v_is_default,
  v_opt_id,
  d_create_date,
  d_update_date,
  v_note)
  SELECT seq_tb_cust_account_rel.nextval,
        v_cust_type,
        i_custid,
        '',
        '',
        '10',
        i_accountname,
        i_regbank,
        i_accountno,
        i_cardno,
        '0',
        '',
        i_isused,
        i_isdef,
        i_person,
        SYSDATE,
        SYSDATE,
        i_note
    FROM tb_cust_info@dblink_to_data_pub;
ORA-02069: global_names parameter must be set to TRUE for this operation
1.把 tb_cust_info@dblink_to_data_pub改成dual,依然报同样的错误。
2.然后跟据错误提示把global_names改成true,仍然报同样的错误。
alter session set global_names = true ;
3.如果单独执行查询语句就没有问题:
SELECT seq_tb_cust_account_rel.nextval,
        v_cust_type,
        i_custid,
        '',
        '',
        '10',
        i_accountname,
        i_regbank,
        i_accountno,
        i_cardno,
        '0',
        '',
        i_isused,
        i_isdef,
        i_person,
        SYSDATE,
        SYSDATE,
        i_note
    FROM tb_cust_info@dblink_to_data_pub
执行正常。
4.在网上搜索有看到说把把DB Link的名称建成与目标数据库的SID相同,如果把DB Link的名称建成与目标数据库的SID相同会报同样的错误,如果在同一数据库上会报:
ORA-02082: a loopback database link must have a connection qualifier

目前解决方法: 把sequence建到远端数据库用户下。然后把select语句中的sequence加上db link.
问题:
1、如果说select语句也是在远端执行,我在远端数据库用户下建了同名的sequence也一样报错。
2、把global_names改成true也一样报错。
现在找不出原因,不知各位大吓是否有解!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值