Каков размер по умолчанию для входа varchar2 в хранимую процедуру Oracle, и его можно изменить? - PullRequest
15 голосов
/ 13 января 2011

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

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

create or replace PROCEDURE TESTPROC ( intext IN VARCHAR2

) AS ....

Каков размер (по умолчанию) целого текста varchar2?

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

спасибо

1 Ответ

35 голосов
/ 13 января 2011

Нельзя указывать размер параметра VARCHAR2 для процедуры.

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

...