У меня есть функция в PLSQL, которая работает со строками и возвращает тип VARCHAR2.Возможно ли создать динамическую переменную varchar2?
Одна из переменных в этой функции
result_key VARCHAR2 (4000) := '';
Когда он работает с большим количеством данных, я получаю ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ошибку.
Похоже, что я должен расширить свою переменную result_key
. Единственное решение, которое я вижу, это объявить result_key
, как
result_key VARCHAR2 (8000) := '';
Я хочу знать, могу ли я сделать это без объявления фиксированного размера result_key
.
С 11g R1 вы можете сделать переменные переменной 'varchar2'« динамическими », указав переменную с максимальной длиной:' varchar2 (32767) '. Подробнее см. Http://stackoverflow.com/q/24831972/272735. Однако 32767 байт является жестким пределом. Если ваши данные не соответствуют лимиту, вам нужно переключиться на 'clob'. – user272735