select count(id) from user where id in ('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;
가 즉시 실행 문제를 일으키는 : 견적에 잘못 이리와 무엇 '208018042'208001105'위의 단일 쿼리가 실행됩니다하지만 아래의 기능 쿼리 몇 가지 문제가 같은 값을 전달해야 .
execute immediate를 호출하기 전에'v_in_optid_list'의 값을 직접 표시 할 수 있습니까? (예 :'dbms_output.put_line (v_in_optid_list);) – schurik