2013年11月13日 星期三
Oracle - Update Join 又失敗~~~again ORA-01779
之前因為用 Join 要更新 table 失敗,
查了一下,只要用子查詢的方式就可以了,
【Oracle - Update 不可以用 Join ?】
但是今天又不行了,
跳出了 ORA-01779 的錯誤訊息!
查了一下,說是子查詢 Join 出來的不是唯一,
可能會有多筆資料的意思!
就是說要 Update A 然後 A Join B 出來的資料 A 跟 B 不是 一對一,
可能 A 會對到兩筆 B,不過明明我已經把所有的 Key 都加上去了,
不曉得會不會是因為我的 A, B 是同一個 Table 的關係?
查到別的文章都說要加 key, index,
不過這個我原本就有 pk 啊?
所以最後我就採用了跳過不檢查的選項啦!
UPDATE (
SELECT /*+BYPASS_UJVC*/A.*, B.VALUE AS VALUE_B
FROM A JOIN B ON A.KEY = B.KEY
)
SET VALUE = VALUE + VALUE_B;
不過這樣代表有一定的危險性,
我是會先下SELECT來看看資料是不是我要的啦!
所以請小心服用!
參考:【解决ORA-01779错误 】
訂閱:
文章 (Atom)