日期:2014-05-17  浏览次数:21050 次

ORA-06502: PL/SQL: 数字或值错误,应该不是缓冲区的问题,请帮忙看看,万分感谢...
存储过程如下:
CREATE   OR   REPLACE   PROCEDURE   dtk_read_clob
(
--     l_amount   in   out   number,
    l_offset   in   number
)
IS
    l_locator   CLOB   default   empty_clob();
    l_readbuf   varchar2(2000);
    l_amount   number(6);

    BEGIN
    SELECT   COL_CLOB   INTO   l_locator   FROM   hhc.hhc_clob   WHERE   IND   =   1;
    DBMS_LOB.READ(l_locator,l_amount,l_offset,l_readbuf);
    commit;
    END;


调用执行如下:
SQL>   exec   aa_read_clob(1);
BEGIN   aa_read_clob(1);   END;

*
ERROR   位于第   1   行:
ORA-06502:   PL/SQL:   数字或值错误
ORA-06512:   在 "SYS.DBMS_LOB ",   line   715
ORA-06512:   在 "SYS.AA_READ_CLOB ",   line   13
ORA-06512:   在line   1

请各帮忙看看,多谢了

------解决方案--------------------
你执行的存储过程与你提供的不是一个啊,是不是字符串连接你用+号了 应该用||