Oracle APEX 5.0 ORA-06550中的错误:第5行第9列:PLS-00103:遇到以下某种情况时遇到符号“START”:),

时间:2017-08-04 11:00:14

标签: oracle plsql oracle-apex oracle-apex-5

我在Oracle APEX中使用以下代码更新并在表中插入一行,但在尝试更新数据时出现错误。它出现在“if :EFFECTIVE_START_DATE >= SYSDATE then”行。如果我删除这个“if”条件,它可以正常工作。

DECLARE

BEGIN

   IF :EFFECTIVE_START_DATE >= SYSDATE
   THEN
      xxxxx.pkg.UPDATE_DATA ( :APP_USER,
                             SYSDATE,
                             NVL ( :COMPANY_CODE, NULL),
                             NVL ( :COST_CENTER, NULL),
                             :USER_NAME,
                             TO_DATE ( :EFFECTIVE_START_DATE, 'DD-MON-YYYY'));

      xxxxx.pkg.UPDATE_DATA.INSERT_DATA (NVL ( :COMPANY_CODE, NULL),
                                         NVL ( :COST_CENTER, NULL),
                                         :USER_NAME,
                                         :USER_NAME_NEW,
                                         :EFFECTIVE_START_DATE,
                                         :EFFECTIVE_END_DATE,
                                         :APP_USER,
                                         SYSDATE,
                                         :APP_USER,
                                         SYSDATE);
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      Raise_Application_Error (-20002, 'ERROR= ' || SQLERRM);
END;
  

ORA-06550:第5行第9列:PLS-00103:遇到符号“START”   当期待以下之一:),*& = - +< /> at是mod   余数不是rem => <>或!=或〜=> =< =<>和或   喜欢like2 like4 likec之间的|| multiset成员submultiset

2 个答案:

答案 0 :(得分:0)

如评论中所示,您似乎已将句点.作为程序包和过程名称的一部分。如果是这种情况,您需要使用双引号"来确保Oracle知道这是名称的一部分,如下所示:

"START.pkg"."UPDATE_DATA"

"START.pkg"."UPDATE_DATA.INSERT_DATA"

假设这些是他们的名字。

答案 1 :(得分:-1)

Try this,

DECLARE
BEGIN
  IF :EFFECTIVE_START_DATE >= SYSDATE THEN
    XXXXX.PKG.UPDATE_DATA(
                          :APP_USER,
                          SYSDATE,
                          NVL ( :COMPANY_CODE, NULL),
                          NVL ( :COST_CENTER, NULL),
                          :USER_NAME,
                          TO_DATE ( :EFFECTIVE_START_DATE, 'DD-MON-YYYY')
                         );

    XXXXX.PKG.INSERT_DATA(
                          NVL ( :COMPANY_CODE, NULL),
                          NVL ( :COST_CENTER, NULL),
                          :USER_NAME,
                          :USER_NAME_NEW,
                          :EFFECTIVE_START_DATE,
                          :EFFECTIVE_END_DATE,
                          :APP_USER,
                          SYSDATE,
                          :APP_USER,
                          SYSDATE
                         );
  END IF;
EXCEPTION
WHEN OTHERS THEN
  RAISE_APPLICATION_ERROR (-20002, 'ERROR= ' || SQLERRM);
END;