添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在本地数据库表A端通过dblink操作远程数据库表B:

insert into B@dblink (select A.* from A),并且A.* 中有使用A端数据库的函数

此时会报错:

ORA-02069:此操作的global_names 参数必须设置为TRUE

网上查了很多资料,都是以下两种解决方案:

1.在远程数据库上创建相同函数,然后在调用的时候 使用远程数据库上的函数

2.通过sql语句:alter session set GLOBAL_NAMES = true; 设置GLOBAL_NAMES参数为true,并将A和B的GLOBAL_NAMES值置相同。

个人亲测,以上两种方案都不能解决问题,至少对我本地没有效果,报错依旧

最后在这里提供我们最终的解决方案:

1,首先在A端创建和B数据库一样的表结构(不要数据,只要表结构)

EXECUTE IMMEDIATE 'create GLOBAL TEMPORARY table ' || cur.c_Tablename ||

' ON COMMIT DELETE ROWS as select * from ' || cur.c_Tablename ||'@DBLink_To_B where 1<>1';

2.再将数据插入到在A端创建的和B一样的表中,暂且叫她B1.

3.再使用 insert into B@dblink (select B1.* from B)

至此可以完美避开在操作远端数据库时直接使用函数,完美解决问题

3年前的问题又有人问了,再记录一下,使用视图比较方便: ORA - 02069 :此 操作 global _ names 参数 必须 设置 TRUE _sql ora _新浪博客 执行dblink插入 操作 报错 数据库A : global _name为 OrcA 数据库B : global _name为 OrcB 在OrcA中建立dblink连接到OrcB,dblink命名为to_OrcB;  在OrcB中创建表T,拥有一个number的id字段;  在OrcA中创建sequence(seq_1);并创建一个function(fun_1),fun_1仅返回1; 来看看发生 02069 今天遇到了 ORA - 02069 : global _ names parameter must be set to TRUE for this operation 查了METALINK原因是不能在通过DBLINK 操作 远程表的DML语句中使用本地函数 原文如下: Because of a limitation, it is not possible to use a local funct <br />通过database link ,序列向远程库中表插入数据时。如果使用本地库中的序列时<br />会遇到 ORA - 02069 : 此 操作 global _ names 参数 必须 设置 TRUE 。<br /><br />解决方案:使用远程库中的序列。<br /> <br />1.scott用户授予report用户对DEPT表的select, insert, update 权限。<br />SQL> conn scott/tiger<br />Connected to Ora cle Database 11 Error: ORA - 02069 : global _ names parameter must be set to TRUE for this operation Cause: You tried to execute an operation that requires a remote mapping. This can not be done because the parameter call 关于 ORA - 02069 错误 今天在做数据测试时,需要在本地库调用DBLINK将数据插入到另一个库中,其中ID列用到了自增序列,后来执行的时候提示 ORA - 02069 : global _ names parameter must be set to TRUE for this operation 错误,通过网上搜索大体意思是 global _ names 设置 true ,在 ora cle安装中默认是FAL 前几天因工作需要, 要从一个 Ora cle数据库到另一台 Ora lce数据库之间建立一个DB Link,用于将一服务器的数据Insert到另外一台机器中。 Ora cle服务器A:Sid:SDH, USERID/PW:  NM/NM Ora cle服务器B: Sid;gsgx,  USERID/PW:  gs/gs建立如下的DB Link :从 B 到 A 创建一个DB Link:crea 原因:在对远程表增删改 操作 的时候,调用了本地函数。    比如:insert into trans_load_rate@DC values(rate_s(1)); trans_load_rate是DC库的表,rate_s函数是本地库的函数,执行上面这条sql的时候,就会报 ora - 02069 解决方法:    将函数也放在远程数据库。insert into trans_load_r...