【问题标题】:Executing a stored procedure through SQL*Plus通过 SQL*Plus 执行存储过程
【发布时间】:2014-11-01 04:54:13
【问题描述】:

我创建了一个程序:

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

谁能建议我做错了什么?

【问题讨论】:

    标签: oracle stored-procedures plsql sqlplus


    【解决方案1】:

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

    ORA-06512: at "PROCEDURE1", line 58

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

    【讨论】:

      猜你喜欢
      • 2011-01-08
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      相关资源
      最近更新 更多