Каков размер по умолчанию для входа varchar2 для хранимой процедуры Oracle и можно ли его изменить?

У меня есть хранимая процедура в Oracle Database 10g, где мой вход - varchar2, но у меня возникают проблемы с его запуском, когда длина ввода длинна (не уверен в точной длине, может быть > 8000).

Моя мысль: "intext varchar2" (как показано ниже) по умолчанию слишком мала. В других случаях, когда мне нужна более длинная строка, я могу определить varchar2 как "intext2 VARCHAR2 (32767)"; Я попытался определить размер аналогично в коде ниже, но мой синтаксис неверен.

create or replace PROCEDURE TESTPROC ( intext IN VARCHAR2

) AS ....

Каков размер (по умолчанию) для intext varchar2?

Может ли этот размер быть определен (увеличен)?

спасибо

Ответ 1

Вы не можете указать размер для параметра VARCHAR2 для процедуры.

Процедура должна с радостью принять строки размером до 32 тыс. (максимальный размер VARCHAR2 в PL/SQL). Если бы это была функция, вызываемая из SQL, а не PL/SQL, ограничение было бы 4k, потому что максимальный размер VARCHAR2 в SQL равен всего 4k.