PL / SQL“错误的参数数量或类型”和“语句被忽略”

时间:2018-05-23 10:20:08

标签: oracle plsql

在调用我的过程和语句时,我一直得到错误的参数数量或类型忽略错误。

这是我的程序

Procedure runCheck(p_runId    in out number,
                     p_runCheck in out FSS_RUN_TABLE%rowtype) is
    v_runId number := 0;

  Begin
    Begin
      select *
        into p_runCheck
        from FSS_RUN_TABLE
       where RUNOUTCOME = 'SUCCESS'
         and Trunc(RUNEND) = Trunc(sysdate);

    Exception
      when NO_DATA_FOUND then
        p_runId := RUNLOG_SEQ.NEXTVAL;
        insert into FSS_RUN_TABLE
          (RUNID, RUNSTART, RUNEND, RUNOUTCOME, REMARKS)
        values
          (p_runId, sysdate, null, null, 'RUN START');
    End;
  Exception
    when others then
      select RUNID
        into v_runId
        from FSS_RUN_TABLE
       where Trunc(RUNSTART) = Trunc(sysdate);
      update FSS_RUN_TABLE
         set RUNEND     = sysdate,
             RUNOUTCOME = 'FAILED',
             REMARKS    = 'RUN FAILED'
       where RUNID = v_runId;
  End;

以下是我执行此程序的方法

Begin
       PKG_FSS_SETTLEMENT.runCheck;
End;

我的FSS_RUN_TABLE内容有5列,分别是RUNID,RUNSTART,RUNEND,RUNOUTCOME,REMARKS

不明白我为什么要继续收到此错误消息?请回答任何问题,谢谢大家。

1 个答案:

答案 0 :(得分:1)

您的程序需要参数,它们是必需的(并且您将它们声明为“输入/输出”)。

declare

  l_runId number;
  l_runCheck FSS_RUN_TABLE%rowtype;

Begin
   PKG_FSS_SETTLEMENT.runCheck(
     p_runId => l_runId,
     p_runCheck => l_runCheck);
End;

但是我担心代码本身 - 你想要实现什么?为什么要分隔异常块?你可以离开那个,并管理那里的所有例外。