【发布时间】:2015-07-20 10:51:47
【问题描述】:
Merge 语句显示错误:
MERGE INTO costing.table1 USING
(SELECT table1.ROWID row_id,
M.STRPS_MATERIAL AS STRPS_MATERIAL
FROM costing.table2 p
JOIN costing.table1 M
ON p.MATNR = M.MATNR
AND p.WERKS = M.WERKS
AND p.BESKZ = M.BESKZ
AND p.SOBSL = M.SOBSL
WHERE M.SOBSL = '30') src ON (table1.ROWID = src.row_id )
WHEN MATCHED THEN
UPDATE SET M.STRPS_MATERIAL = src.STRPS_MATERIAL;
SQL Error: ORA-00904: "table1"."ROWID": invalid identifier
00904. 00000 - "%s: invalid identifier"
帮助我更正查询,因为rowid 不是table1 中存在的列。
【问题讨论】:
-
即使列中没有ROWID,您也可以选择它。我的疑问是这里的
costing是什么,为什么没有在内部查询中提及?你可以试试 M.ROWID 而不是 table1.ROWID。 -
成本计算是模式...
-
好的。你的内部查询工作正常吗?
-
M.ROWID !!那里是什么??
-
表别名。你在 join 语句中给了
costing.table1 as M对吗?