对于我的程序,我收到错误
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
下面的是我的存储过程的示例代码。如何增加out_id参数的缓冲区大小
create or replace
PROCEDURE TEST_SRVC(in_id IN VARCHAR2, in_name IN VARCHAR2, OUT_Id OUT VARCHAR)
AS
--------------
-----------
END;
我尝试通过将签名更改为:
来增加缓冲区create or replace
PROCEDURE TEST_SRVC(in_id IN VARCHAR2, in_name IN VARCHAR2, OUT_Id OUT VARCHAR(32767))
但这导致编译错误
答案 0 :(得分:2)
你不能增加OUT参数的缓冲区大小。 OUT参数接收局部变量的大小以保存数据,并将值从该变量分配给OUT参数。
即,您的OUT_Id是一个OUT参数,它将具有相同的内存,您将从本地变量(将为其分配值。)中分配它。
答案 1 :(得分:0)
复制“Bob Jarvis的评论作为答案”
OUT参数的大小由调用者决定,而不是由调用例程决定。 “增加大小”的唯一方法是让调用者传递更长的VARCHAR变量。所以这是调用例程的问题。