今天在做数据测试时,需要在本地库调用DBLINK将数据插入到另一个库中,其中ID列用到了自增序列,后来执行的时候提示ORA-02069: global_names parameter must be set to TRUE for this operation 错误,通过网上搜索大体意思是global_names 要设置成true,在oracle安装中默认是FALSE的,可是变成true在DBLINK使用的时候会变得不方便,两个SID需要都设置成相同的名字,两台数据库在客户那都跑了好几年了,并且很多程序都使用到,一旦变更SID会改很多地方,这种方式肯定不能采用。最后发现,原来在数据插入远程数据库时,序列不能调用本地序列,需要同样调用远程的序列。
原SQL:insert into testtig@link173(id,uname,uage) values (z_seq.nextval,'z',22);
改后SQL:insert into testtig@link173(id,uname,uage) values (z_seq.nextval@link173,'z',22);
插入OK了。