(原创)同时使用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.

同时使用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也一样报错。
现在找不出原因,不知各位大吓是否有解!!
目录
相关文章
|
SQL Oracle 关系型数据库
Oracle global database name与db link的纠缠关系
ORACLE数据库中Global Database Name与DB LINKS的关系还真是有点纠缠不清,在说清楚这个关系前,我们先来了解一下Global Database Name的概念   Global DataBase Name 概念 1.
1323 0
|
Oracle 关系型数据库 Linux
|
网络协议 Oracle 关系型数据库
|
数据库连接 数据库
PLSQL_Database Link的基本概念和用法(概念)
2014-06-08 Created By BaoXinjian 一、总结 1. 建立数据库连接的方式 2. 查询方式 3. 连接类型 4. 常用的查询   二、具体分析 1. 建立数据库连接的方式     (1).
703 0
|
数据库 数据安全/隐私保护 分布式数据库
建立dblink(database link)
database linke是建立一个数据库到另一个数据库的路径的对象,通过database link可以允许查询远程表,我理解可以算作一种分布式数据库的用法。
770 0
|
SQL Oracle 关系型数据库
oracle database link
原文整理自网络: database link基础知识 什么是database link? database link,它是用来更方便的一个数据库中访问另一个数据库(包括本地和远程的,道理是一样的),一开始,很多人会发生误解,其实是在本地建立的。
1105 0
|
1月前
|
Oracle 关系型数据库 Linux
服务器Centos7 静默安装Oracle Database 12.2
服务器Centos7 静默安装Oracle Database 12.2
86 0
|
4月前
|
Oracle 关系型数据库 数据库
windows Oracle Database 19c 卸载教程
打开任务管理器 ctrl+Shift+Esc可以快速打开任务管理器,找到oracle所有服务然后停止。 停止数据库服务 在开始卸载之前,确保数据库服务已经停止。你可以使用以下命令停止数据库服务: net stop OracleServiceORCL Universal Installer 卸载Oracle数据库程序 一般情况运行Oracle自带的卸载程序,如使用Universal Installer 工具卸载。 点击开始菜单找到Oracle,然后点击Oracle安装产品,再点击Universal Installer。 点击之后稍等一会然后会进入进入下图界面,点击卸载产品。 选中要删除的Orac
118 1

热门文章

最新文章