【发布时间】:2022-01-22 00:48:48
【问题描述】:
请修复此错误
CREATE OR REPLACE TRIGGER BELITIKET
AFTER INSERT ON PENUMPANG FOR EACH ROW
BEGIN
INSERT INTO TIKET(NIK,NAMA_PENUMPANG, NAMA_KERETA,RUTE,HARGA)
SELECT p.NIK, p.NAMA, k.NAMA_KERETA, p.RUTE, k.HARGA
FROM PENUMPANG p, KERETA_API k
WHERE p.RUTE = k.RUTE and p.WAKTU = k.WAKTU_KEBERANGKATAN;
END;
这是错误
SQL Error: ORA-04098: trigger 'SCOTT.TRIGGER1' is invalid and failed re-validation
04098. 00000 - "trigger '%s.%s' is invalid and failed re-validation"
*Cause: A trigger was attempted to be retrieved for execution and was
found to be invalid. This also means that compilation/authorization
failed for the trigger.
*Action: Options are to resolve the compilation/authorization errors,
disable the trigger, or drop the trigger.
【问题讨论】:
-
错误消息在触发器“SCOTT.TRIGGER1”上。这不是您向我们展示的触发器。你能告诉我们失效的触发器吗?
-
如果您以触发器所有者 SCOTT 的身份登录,那么您可以查询
user_errors视图以查看触发器编译错误是什么。作为另一个用户,您可能可以在all_errors或dba_errors中看到它。 (正如 Littlefoot 解释的那样,您显示的触发器将出现运行时变异表错误;但您已经显示了编译错误的结果,显然是在不同的触发器上......)