У меня следующее определение курсора
cMultiplier NUMBER := 100000000000000000 ;
CURSOR CR_TABLE1 IS
SELECT to_char((COL_ID * cMultiplier) + SEQ,'0999999999999999999') "NEW_COL"
FROM TABLE1;
Затем этот курсор выбирается как
FETCH CR_TABLE1
BULK COLLECT INTO AR_TABLE1 LIMIT I_BULK_LIMIT;
EXIT WHEN AR_TABLE1.COUNT = 0;
Где AR_TABLE1
имеет тип
TYPE T_TABLE1 IS TABLE OF CR_TABLE1%ROWTYPE;
AR_TABLE1 T_TABLE1;
Тестовые значения для COL_ID
- это 1
для всех случаев, а тестовые значения для SEQ
- 1234567654322
(13-значное число). Это значение вставляется по длине 19 в другую таблицу типа VARCHAR
.
Проблема в том, что как только курсор доходит до FETCH
, он выдает исключение, указывающее ORA-06500: PL/SQL: storage error
Я знаю, что это должно что-то делать с оператором select, но я конвертирую его в строку (varchar). Почему я сталкиваюсь с этой проблемой?