在本地数据库表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...