我在包內部有一個複雜的存儲過程。在這個SP內部,我需要查詢一個表來獲取所有與一列相關的數據,然後用它來檢查「IF」語句中的其他條件。 下面是我在做什麼:將整個列存儲在存儲過程中的變量中
--declare a variable to store the holidays
l_holidays MySchema. HolidayTable.DateColumn%TYPE
-- populate this variable
Select a.DateColumn into l_holidays
from MySchema. HolidayTable a;
-- using this variable inside an "IF" statement
IF (current_Date IN l_holidays)
THEN
-- do something
ELSE
-- do something
END IF;
我每次運行它,我得到以下錯誤
ORA-01422: exact fetch returns more than requested number of rows
我知道這是因爲我想填充使用「進入整列「條款。但我不知道有任何其他的做法。
這聽起來可怕像你正在試圖做一些程序上按行對一些可以在一個sql語句中完成的事情進行逐行處理。 IF聲明中發生了什麼工作?如果您使用它來對錶執行一些DML,那麼逐行(又慢又慢)處理並不是實現這一點的最佳或最快的方式。 – Boneist