我尝试执行以下命令:无效的ID上更新(甲骨文)
UPDATE DB_TEST.STOCK_ITEMS
SET STATUS = (SELECT *
FROM (SELECT STOCK_ITEM_STATUS
FROM DB_TEST.STOCK_ITEMS_HISTORY
WHERE STOCK_ITEM_ID = DB_TEST.STOCK_ITEMS.ID
ORDER BY CHANGED_ON DESC, ID DESC)
WHERE ROWNUM <= 1)
WHERE EXISTS (SELECT *
FROM DB_TEST.STOCK_ITEMS_HISTORY
WHERE STOCK_ITEM_ID = DB_TEST.STOCK_ITEMS.ID);
但我得到的错误:
SQL-Error: ORA-00904: "DB_TEST"."STOCK_ITEMS"."ID": invalid identifier
我抬头Oracle错误,但我得到的是,我应该使用错误或缺少列名称,但DB_TEST.STOCK_ITEMS.ID
字段肯定存在。
还有什么其他原因会导致此错误?
你不能用数据集更新一列'将状态设置=(SELECT * ...)'无数据库会知道该怎么把数据上那个领域。您可能正在寻找:http://dba.stackexchange.com/a/3034/42478 –
@JorgeCampos。 。 。阅读查询。子查询只返回一个值。 –