我需要查詢一個表,如select count(id) from user where id in ('208018042','208001105')
,我已經寫了一個函數來做到這一點接受分號分隔數據,但我得到無效數字作爲例外,我想我不是發送值在報價,什麼是錯的需要這兒過得通過像「208018042'208001105」上述單查詢被執行,但一些問題在下面的函數查詢值:問題與程序立即執行
FUNCTION p_get_count_id(p_invalue IN VARCHAR2) RETURN VARCHAR2 IS
v_splitTable split_tbl;
v_OptionValueList varchar2(4000);
v_in_optid_list varchar2(4000);
v_count number;
begin
v_in_optid_list := p_in_field_value;
if (v_in_optid_list is not null) then
v_in_optid_list := REPLACE(p_in_field_value, ';', ',');
EXECUTE IMMEDIATE 'select count(id)
from user
where id in
(' || v_in_optid_list || ')' bulk collect
into v_splitTable;
v_OptionValueList := joinstr(v_splitTable, '; ');
end if;
return v_OptionValueList;
End p_get_count_id;
的執行直接導致一個問題。
您可以在調用立即執行之前直接顯示「v_in_optid_list」的值嗎?例如'dbms_output.put_line(v_in_optid_list);' – schurik 2012-08-16 13:33:05