日常经常会通过dblink进行数据库的远程merge,发现在类似
MERGE INTO table_a@adb.oracle.com a
USING table_b b
ON (a.id = b.id)
WHEN MATCHED THEN
UPDATE
SET a.cou = b.cou,
a.dd = sysdate
WHEN NOT MATCHED THEN
INSERT
(a.id,
a.cou,
a.dd)
VALUES
(b.id,
b.cou,
sysdate);
会出现
ORA-01008: not all variables bound
ORA-02063: preceding line from adb.oracle.com
经尝试,凡是出现sysdate就会报错,去掉就正常。
在这段代码前把sysdate赋予一个变量,在merge时使用变量即可。
问题解决。
数据库版本:10.2.0.4.0 - 64bit