Я пытаюсь выбрать данные из буфера, используя DBMS_LOB.SUBSTR (), но получаю ошибку
ORA-06502: PL / SQL: ошибка числа или значения: строка символовслишком маленький буфер
Я использую это, так как мне нужно пересобрать файлы, используя фрагменты из внутренних сгустков, и я использую функцию SUBSTR для создания этого.
Я использую нижеобратите внимание, что это работает для файлов, в которых выбраны меньшие объемы данных, но не работает, когда они кажутся слишком большими:
DBMS_LOB.SUBSTR(RAW_CLOB,INSTR(RAW_CLOB,'ZPT|',INSTR(RAW_CLOB,(dbms_lob.substr(raw_clob, 4,instr(raw_clob,CHR(10))+1))||'1591018726313')+1)-INSTR(RAW_CLOB,(dbms_lob.substr(raw_clob, 4,instr(raw_clob,CHR(10))+1))||'1591018726313')-1,INSTR(RAW_CLOB,(dbms_lob.substr(raw_clob, 4,instr(raw_clob,CHR(10))+1))||'1591018726313')) file_body
, что означает следующее, когда я получаю значения из INSTR
SELECT DBMS_LOB.SUBSTR(RAW_CLOB,1000,63) file_body
Просто запуск в одиночку, вне какой-либо процедуры PLSQL, все равно вызывает ошибку.Когда я сокращаю экстент до приведенного ниже, мне удается получить некоторые результаты, но это только для того, чтобы привести пример:
SELECT DBMS_LOB.SUBSTR(RAW_CLOB,4052,63) file_body