用数据链路和建立任务可以解决。
建立两条数据链路:
(1) A库--->B库:A_link
(2) B库--->B库:B_link
以下可以解决问题1,问题2同理:
写一个过程:
CREATE OR REPLACE procedure A_syn
as
sTableName varchar(30);
cursor crTable is select TABLE_NAME from user_tables@A_link
begin
open crTable;
LOOP
fetch crTable into sTableName;
EXIT WHEN crTable%NOTFOUND;
sSql:='INSERT INTO ' || sTableName ||' select * from '
|| sTableName || '@' || A_link;
EXECUTE IMMEDIATE(sSql);
commit;
exception
when others then
return;
end loop;
close crTable;
end ;
建立两条数据链路:
(1) A库--->B库:A_link
(2) B库--->B库:B_link
以下可以解决问题1,问题2同理:
写一个过程:
CREATE OR REPLACE procedure A_syn
as
sTableName varchar(30);
cursor crTable is select TABLE_NAME from user_tables@A_link
begin
open crTable;
LOOP
fetch crTable into sTableName;
EXIT WHEN crTable%NOTFOUND;
sSql:='INSERT INTO ' || sTableName ||' select * from '
|| sTableName || '@' || A_link;
EXECUTE IMMEDIATE(sSql);
commit;
exception
when others then
return;
end loop;
close crTable;
end ;
你这种思维明显想错了,我需要的是数据的同步,不是要你把整个数据导入导出
在库A和B分别建立DBLINK,如果库A INSERT 一条记录,如果成功。就发第二条
语句给B,反之一样,在过程里面实现应该很简单。不知道你有什么见解?
你说的蛮对的,我也考虑过这个问题,不过有一个疑难是B库中的程序不是我做的,也就不能用你那种方法实现
你用程序向A库中的插入数据后,再用程序对B库进行相同数据插入。
这样可以保持同步,而且使用起来非常简单。
qq:106383098