大家好,我對PL/SQL有點新,所以有點困惑。我有一個名爲rec
的光標,並通過它循環播放,我有兩個嵌套的IF語句。PL/SQl嵌套如果循環內部如果循環不退出
CURSOR Cur IS
SELECT Mil.Id,
Mil.Record_Num,
Mil.Status,
Mil.file_processed,
Mil.Updated_By
FROM status_log mil
WHERE Mil.file_processed != 'Processed'
For Update of Mil.file_processed;
FOR Rec IN Cur LOOP
IF (Rec.status = 'Ready' OR Rec.status = 'Go') THEN
IF Length(Rec.Zip) = 5 AND
(Substr(Rec.Zip, 1, 3) = '303' OR
Substr(Rec.Zip, 1, 3) = '304') THEN
l_state:= 'ATL';
END IF;
UPDATE status_log mil
SET file_processed = 'Processed'
WHERE current of cur
END IF;
COMMIT;
END LOOP;
現在,只要將光標具有滿足第二IF
一個記錄(即Zip是5的長度和代碼開始與303或304),它沒有再命中update
語句的記錄,所有記錄後。我甚至試圖在IF
循環中的邏輯之後使用EXIT
語句,但無濟於事。我究竟做錯了什麼?
請張貼遊標,並且「代碼做某事」:) – 2011-12-21 20:26:41
有沒有機會拋出一個錯誤並默默退出? (也就是說,當其他程序有空時,你的程序有異常;') – Allan 2011-12-21 20:27:08
嗨,代碼做一些事情,我只是將一個變量設置爲一個特定的值。該代碼不負責,因爲我評論說,並試圖用空白塊運行它,但同樣的問題。編輯了一下代碼檢查更新。 – Eosphorus 2011-12-21 21:58:48