我嘗試執行以下命令:無效的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。 。 。閱讀查詢。子查詢只返回一個值。 –