如何增加OUT参数的缓冲区大小

时间:2014-08-25 16:50:17

标签: sql stored-procedures plsql

对于我的程序,我收到错误

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))

但这导致编译错误

2 个答案:

答案 0 :(得分:2)

不能增加OUT参数的缓冲区大小。 OUT参数接收局部变量的大小以保存数据,并将值从该变量分配给OUT参数。

即,您的OUT_Id是一个OUT参数,它将具有相同的内存,您将从本地变量(将为其分配值。)中分配它。

答案 1 :(得分:0)

  

复制“Bob Jarvis的评论作为答案”

OUT参数的大小由调用者决定,而不是由调用例程决定。 “增加大小”的唯一方法是让调用者传递更长的VARCHAR变量。所以这是调用例程的问题。