我有两个表,第一个表是“tes_tmp”,第二个表是“tes_tmp1”。我想根据“tes_tmp”表更新“tes_tmp1”表。如果两个表之间存在匹配的列,则应更新“tes_tmp1”。
我已经尝试了以下查询:
MERGE INTO TES_TMP1 t1
USING (SELECT * FROM tes_tmp) t2
ON (t1.objectid = t2.objectid)
WHEN MATCHED THEN
UPDATE SET t1.kecamatan = t2.kecamatan, T1.wilayah = T2.wilayah;
字符串
但是,在上面的查询中,需要显式声明每一列。我的问题是,是否有一种方法可以更新表,而不必先显式地声明列。
2条答案
按热度按时间clj7thdc1#
我的问题是,是否有一种方法可以更新表,而不必先显式地声明列。
不,我不知道
documented syntax for
MERGE
是:合并::=
x1c 0d1x的数据
注意:必须至少指定
merge_update_clause
或merge_insert_clause
子句之一。merge_update_clause::=
的
merge_insert_clause::=
的
在
MERGE
插入和更新子句中,没有定义使用通配符的语法;你必须显式地声明要合并的列。如果你想构建一些动态SQL,那么你需要代码来:
EXECUTE IMMEDIATE
运行它。epfja78i2#
谢谢你的帮助。现在,我可以执行更新,而无需事先声明列。
字符串