【发布时间】:2018-01-12 07:00:33
【问题描述】:
我在 Oracle APEX 中使用以下代码更新并在表中插入一行,但是当我尝试更新数据时出现错误。它出现在 "if :EFFECTIVE_START_DATE >= SYSDATE then" 行。如果我删除这个“如果”条件,它就可以正常工作。
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 in is mod 余数不是 rem => or != or ~= >= and or like2 like4 likec 之间 ||多重集成员子多重集
【问题讨论】:
-
您调用的第二个过程的名称是否正确?你那里似乎有一个额外的“级别”。
-
你的包裹叫'START'吗?你已经 XX 出的那部分?
-
顺便说一句,异常处理程序没有任何用处,最好将其删除。如果您希望它包含现有的错误堆栈,请将第三个参数作为
true传递,而不是连接sqlerrm。 -
:effective_start_date的值是多少?第 9 列是什么(如错误消息中所述)?
标签: oracle plsql oracle-apex oracle-apex-5