我遇到了问题,我正在创建一个这样的程序:
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
我不知道如何解决它。
答案 0 :(得分:0)
在查询窗口中尝试此操作或仅使用SQPLus:
declare
msg varchar(300) ;
begin
test_size_out(msg);
end;
除非我弄错了,否则字符串中的250个字符可以正常工作,但不是301。
您也可能希望在存储过程前加上SP,带有PKG等功能的函数。