通过SQL * Plus执行存储过程

时间:2014-11-01 04:54:13

标签: oracle stored-procedures plsql sqlplus

我创建了一个程序:

PROCEDURE PROCEDURE1(
            p_str IN varchar2,
            cursor_fetch out REF_CURSOR,
            p_str2 OUT VARCHAR2,
            p_success OUT VARCHAR2 
            ) 
-- Proc Body --
End PROCEDURE1;

现在通过SQL * Plus

执行该过程
SQL>var cur refcursor;
SQL>var a varchar2;
SQL>var b varchar2;
SQL>exec PROCEDURE1('Hi',:cur,:a,:b);

它显示错误:

ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at "PROCEDURE1", line 58
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1

任何人都可以建议我做错了吗?

1 个答案:

答案 0 :(得分:0)

如果你没有任何异常阻止,那么这将揭示错误背后的原因,因为行号是正确的:

ORA-06512: at "PROCEDURE1", line 58

由于我们没有您的代码,我们不知道第58行发生了什么。但是,您需要调试错误堆栈。