Мне нужно изменить сигнатуру функции, чтобы иметь параметр (p_param) типа CLOB, предыдущий тип был nvarchar2.Это вызвало у меня проблемы, когда существующий код использовал ||к конкатате.
Вот существующий фрагмент, который отлично работал для NVarchar2, но, очевидно, при использовании ||чтобы объединить CLOB, он обрабатывает его как nvarchar2, что является проблемой при превышении предельного числа символов nvarchar2.
execute immediate
'select p.person_id
from person p where p.id in (' || p_param || ')'
bulk collect into persons;
Я попытался изменить приведенный выше фрагмент на
execute immediate
concat(concat('select p.id from person p where p.person_id in(',p_param),')')
bulk collect into members;
Это не компилируется, я получаю сообщение об ошибке
PLS-00382: выражение имеет неправильный тип
Я новичок в PL / SQL, спасибо запомощь.