Это моя ХП:Oracle Stored Proc VarChar 3 символов ограничение
CREATE OR REPLACE
PROCEDURE "YOUQI_SP"
(
INPUT1 IN VARCHAR2,
INPUT2 IN VARCHAR2,
OUTPUT1 OUT VARCHAR2
)
AS
BEGIN
OUTPUT1 := INPUT1 || INPUT2;
DBMS_OUTPUT.PUT_LINE('INPUT1 : ' || INPUT1);
DBMS_OUTPUT.PUT_LINE('INPUT2 : ' || INPUT2);
DBMS_OUTPUT.PUT_LINE('OUTPUT1 : ' || OUTPUT1);
END YOUQI_SP;
Там нет проблем выполнения: BEGIN YOUQI_SP('a', 'bc', :output1); END;
. Вот результат:
Array
(
[output1] => abc
)
Array
(
[0] => INPUT1 : a
[1] => INPUT2 : bc
[2] => OUTPUT1 : abc
)
Но если добавить еще один символ на входе, я получаю ошибку:
[code] => 6502
[message] => ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at "YOUQI_SP", line 9 ORA-06512: at line 1
Это еще доказанный путем присвоения переменной непосредственно OUTPUT1
. Он может содержать максимум 3 символа. Любая идея, как я могу заставить его вернуть более 3 символов? Благодаря!
Можете ли вы опубликовать полный код, который вы используете для вызова процедуры, и определить среду, из которой вы ее вызываете. –
Параметры OUT - это переменные, декалированные в клиентской среде. Таким образом, ошибка лежит там, а не в коде, который вы опубликовали. – APC