在傳遞參數時執行此代碼塊時出現問題。參數 rf是要輸入到WHERE子句中的變量的列表。要輸入的變量數量不是靜態的。在PL/SQL中將多個變量傳遞到WHERE條件存儲過程
create or replace
procedure test_pl(rf in varchar2)
IS
counter number;
BEGIN
select count(*) into counter from test_pl_imp where column_name in (rf);
dbms_output.put_line(counter);
END;
執行代碼如下:
declare
inparam varchar2(20) := 'xyz,ran,dom';
begin
goku.test_pl(inparam);
end;
/
我要像執行的WHERE條件:
where column_name in ('xyz','ran','dom');
但它被執行考慮xyz,ran,dom
作爲字符串本身。
有沒有辦法實現它?
INSTR可能有問題的東西,如「MyString的」和「MyStringTest」時只提供「MyString的」作爲變量。但是爲了避開它,你可以用一個特殊的字符和變量來填充原始值,這樣它會查找「; MyString;」代替。我之前也完成了這個技巧。 –
哦優秀的小動作 - 將不得不記住它! –
關閉......您還需要填寫列表中的第一個值。無論如何。做得好! –