Oracle输出参数的默认大小

时间:2014-12-12 13:27:26

标签: oracle parameters oracle11g output oracle-sqldeveloper

我遇到了问题,我正在创建一个这样的程序:

CREATE OR REPLACE PROCEDURE TEST_SIZE_OUT
( 
    MSGTEXT    OUT VARCHAR2
) IS 

BEGIN  

    --The next text has 200 characters
    MSGTEXT := '10101201212012012012012120121212134541010101011111111110000000010101000000000001111111101111111111111111111111111111111111111000000000000000023401654421524546545gh4g4h4ghdgj5dghj4dgj4j4ghj4ghj1101123m';

END TEST_SIZE_OUT;
/

但是当我为MSGTEXT分配一个包含201个字符的文本并执行此过程时,它会生成此错误:

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

我不知道如何解决它。

1 个答案:

答案 0 :(得分:0)

在查询窗口中尝试此操作或仅使用SQPLus:

declare

msg varchar(300) ;

begin

   test_size_out(msg);

end;

除非我弄错了,否则字符串中的250个字符可以正常工作,但不是301。

您也可能希望在存储过程前加上SP,带有PKG等功能的函数。