1
我有這樣的光標在一過程中的包:Oracle存儲過程光標總是返回零行
PROCEDURE CANCEL_INACTIVE(IN_DAYS_OLD NUMBER)
IS
CURSOR inactive IS
SELECT * FROM MY_TABLE
WHERE STATUS_CHANGED_DATE <= TRUNC(SYSDATE-IN_DAYS_OLD)
AND CANCEL_CD IS NULL;
rec inactive%ROWTYPE;
BEGIN
OPEN inactive;
LOOP
FETCH inactive INTO rec;
EXIT WHEN inactive%NOTFOUND;
-- do an update based on rec.id
END LOOP;
END;
END CANCEL_INACTIVE;
每次測試或運行該過程,無活性總是具有零行。但是,當我將相同的查詢放入SQL窗口時,我得到了我正在查找的行。
這是什麼?
你怎麼知道遊標有零行? –
您是否使用完全相同的IN_DAYS_OLD測試了查詢? –
我通過使用它的應用程序運行函數,但沒有看到函數的效果。然後,我通過在調試模式下進行編譯並使用測試腳本來逐步驗證使用的IDE代碼,從而驗證了這一點。 –