的......更新我發現,Oracle數據庫10g和11g區別對待下面的PL/SQL塊(我用SCOTT模式爲方便起見):差異選擇在Oracle數據庫10g和11g
DECLARE
v_ename bonus.ename%TYPE;
BEGIN
SELECT b.ename
INTO v_ename
FROM bonus b
JOIN emp e ON b.ename = e.ename
JOIN dept d ON d.deptno = e.deptno
WHERE b.ename = 'Scott'
FOR UPDATE OF b.ename;
END;
/
雖然在10g中(10.2)此代碼成功結束(阱NO_DATA_FOUND引發異常但預計),在11g中(11.2)它會引發異常「含糊定義的列」。這絕對不是預期的。現在看來似乎並沒有考慮到表的別名,因爲我發現,當我改變FOR UPDATE OF e.empno(也不起作用)列於e.mgr(這是唯一的)就開始工作。那麼11g中的這個錯誤呢?有什麼想法嗎?
我試着和非ANSI語法按預期工作。因此,他們似乎修復了你提到的錯誤,但引入了另一個錯誤。 :-) – sax 2010-04-30 04:42:27