Lit*_*oye 2 oracle triggers plsql pls-00103
尝试编译时,我收到以下错误
错误(16,8):PLS-00103:遇到以下其中一项时遇到符号"SPROLLUPEXPENSEITEM":: =.(@%;符号":="代替"SPROLLUPEXPENSEITEM"继续.
和
错误(17,15):PLS-00103:当遇到以下情况之一时遇到符号"=":. (*@%= - + </>在是模余数不那么REM <>或=或〜=> = <= <>和或类似的多集||构件SUBMULTISET之间LIKE2样4 likec!
create or replace
TRIGGER tr_ExpenseItem_Rollup
AFTER DELETE OR UPDATE of ExpApprAmt
ON ExpenseItem
FOR EACH ROW
DECLARE
RollupAmt Number;
BlnResult Boolean;
BEGIN
IF DELETING THEN
RollupAmt := -1 * :Old.ExpApprAmt;
End If;
IF UPDATING Then
RollupAmt := :New.ExpApprAmt - :Old.ExpApprAmt;
End IF;
Call spRollUpExpenseItem(:New.ERNo,:New.ECNo,RollupAmt,BlnResult);
If BlnResult := TRUE
--Additional Logic Here
End IF;
END;
Run Code Online (Sandbox Code Playgroud)
我是一名学生而且很新,所以任何帮助都会受到赞赏.
call
不是PL/SQL中的关键字,要运行存储过程,只需使用其名称即可.call
从以前删除spRollUpExpenseItem
:
create or replace
TRIGGER tr_ExpenseItem_Rollup
AFTER DELETE OR UPDATE of ExpApprAmt
ON ExpenseItem
FOR EACH ROW
DECLARE
RollupAmt Number;
BlnResult Boolean;
BEGIN
IF DELETING THEN
RollupAmt := -1 * :Old.ExpApprAmt;
End If;
IF UPDATING Then
RollupAmt := :New.ExpApprAmt - :Old.ExpApprAmt;
End IF;
spRollUpExpenseItem(:New.ERNo,:New.ECNo,RollupAmt,BlnResult);
If BlnResult = TRUE Then
--Additional Logic Here
End IF;
END;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4182 次 |
最近记录: |