함수 서명을 CLOB 유형의 매개 변수 (p_param)로 변경해야합니다. 이전 유형은 nvarchar2입니다. 이로 인해 기존 코드가 || 연결하기.즉시 실행을위한 PL/SQL의 Concat CLOB
여기에 기존 코드 조각이 있는데, 이는 NVarchar2에서 잘 작동했지만 분명히 || CLOB를 concat하려면 nvarchar2와 같은 문자를 처리합니다. nvarchar2의 문자 제한을 초과하면 문제가됩니다. 표현 잘못된 유형
이다 :execute immediate
'select p.person_id
from person p where p.id in (' || p_param || ')'
bulk collect into persons;
나는
PLS-00382는,이 컴파일되지 않습니다
execute immediate concat(concat('select p.id from person p where p.person_id in(',p_param),')') bulk collect into members;
, 나는 오류가 발생하는 것으로 위의 조각을 변경하려
저는 PL/SQL을 처음 사용하는데 도움을 주셔서 감사합니다.
VARCHAR2 또는 NVARCHAR2 변수에 적합하지 않을 정도로 오래 사람을 구성하고 있습니까? 나는 오라클이 오랫동안 SQL을 갖고 싶어한다고 생각하지 않는다. 나는이 접근 방식에 전적으로 의문을 품을 것이다. –
예, 전적으로 동의합니다. 일부 코드를 유지 관리하고 있으며 전체 내용을 다시 작성하지 않으려합니다. – Andy