跟进我之前的query ,有没有办法指定使用同一个表上的列名复制的记录的条件?即我想将所有数据从沙盒服务器复制到生产服务器,以用于生产服务器中不存在沙箱中COL_A的所有行。所以预期的select
查询应该是:
SELECT * FROM <Sandbox><TABLE_C> WHERE <Sandbox><TABLE_C>COL_A NOT EXISTS (SELECT <production>COL_A FROM <production>TABLE_C)
即。从沙箱到生产的所有记录,找不到匹配的COL_A
答案 0 :(得分:1)
我不确定Oracle特定的语法,但是假设您能够将它们作为链接服务器访问 -
INSERT INTO TABLE_C@prod_link
SELECT source.*
FROM TABLE_C source
LEFT JOIN TABLE_C@prod_link target
ON source.COL_A = target.COL_A
WHERE target.COL_A IS NULL
其中prod_link是数据库链接
CREATE PUBLIC DATABASE LINK
prod_link
CONNECT TO
remote_username
IDENTIFIED BY
mypassword
USING 'tns_service_name';
我没有运行Oracle实例,我可以尝试使用它,但它应该可以正常运行