我有一个问题,我创建了一个这样的过程:
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
我不知道该怎么解决它。
发布于 2014-12-13 02:33:46
在查询窗口中或仅使用SQPLus尝试执行以下操作:
declare
msg varchar(300) ;
begin
test_size_out(msg);
end;
除非我弄错了,否则字符串长度为250个字符就可以了,但301个字符就不行了。
你可能还想在你的存储过程前面加上SP,在函数前面加上F包加上PKG等等。
https://stackoverflow.com/questions/27444685
复制