Каков предел размера для аргумента подпрограммы PL / SQL varchar2 в Oracle?
Когда вы создаете процедуру (или функцию) в Oracle PL/SQL, вы не можете указать максимальную длину аргументов varchar2, только тип данных. Например
create or replace procedure testproc(arg1 in varchar2) is
begin
null;
end;
Знаете ли вы максимальную длину строки, которую вы можете передать в качестве аргумента arg1 этой процедуре в Oracle?
3 ответа
Решение
В процедуре PL/SQL это может быть до 32 КБ
Более подробная информация здесь: http://it.toolbox.com/blogs/oracle-guide/learn-oracle-sql-and-plsql-datatypes-strings-10804
Я попытался с testproc( lpad( ' ', 32767, ' ')), и это работает.
С 32768 байтами это терпит неудачу, таким образом это - 32 КБ - 1 байт
В PL / SQL максимальный размер VARCHAR2
Тип данных составляет 32767 байт с 10gR2 (и, возможно, раньше, но я только что проверил документацию к этому выпуску).
Ссылки на документацию:
- Oracle 12cR1: справочник по языку PL / SQL 12c, выпуск 1
- Oracle 11gR2: справочник по языку PL / SQL 11g, выпуск 2
- Oracle 10gR2: руководство пользователя и справочник по PL / SQL 10g, выпуск 2