(原创)同时使用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;
执行正常。
环境:
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
ORA-02082: a loopback database link must have a connection qualifier
目前解决方法:把sequence建到远端数据库用户下。然后把select语句中的sequence加上db link.
问题:
1、如果说select语句也是在远端执行,我在远端数据库用户下建了同名的sequence也一样报错。
2、把global_names改成true也一样报错。
现在找不出原因,不知各位大吓是否有解!!
人生有三宝:终身运动,终身学习,终身反醒.吸收新知,提高效率,懂得相处,成就自己,也成就他人,创造最高价值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人