Если ваш параметр PARAM IN VARCHAR2
, то из документации по типам данных PL / SQL :
VARCHAR2
Символьная строка переменной длины с максимальным размером 32 767 байт
Таким образом, максимальный размер параметра составляет 32767 байт (32 КБ), и вам не нужно ничего делать, чтобы увеличить его с 200 до 400 байт (или символов), поскольку он уже примет этот размер.
Аргументы процедуры не имеют фиксированной максимальной точности ниже максимумов типа данных.
Чтобы показать это:
DECLARE
p_text VARCHAR2(32767);
PROCEDURE PS_TEST( PARAM IN VARCHAR2 )
IS
BEGIN
DBMS_OUTPUT.PUT_LINE( LENGTH( PARAM ) );
END;
BEGIN
FOR i IN 1 .. 8 LOOP
p_text := p_text || DBMS_RANDOM.STRING( 'X', 4000 );
END LOOP;
p_text := p_text || DBMS_RANDOM.STRING( 'X', 767 );
PS_TEST( p_text );
END;
/
Выходы:
32767