所以我关注这个guide以避免突变错误,因为我曾经查询触发触发器的表,但显然不起作用。所以我按照指南明确说明创建了这个包。
CREATE OR REPLACE PACKAGE NOVOANOLECTIVO
AS
TYPE ANOARRAY IS TABLE OF ROWID INDEX BY BINARY_INTEGER;
NOVOSTUPLOS ANOARRAY;
VAZIO ANOARRAY;
END;
以下触发器无法编译,因为它表示“表达式类型错误”。但我只是按照指南,所以似乎是什么问题?
CREATE OR REPLACE TRIGGER T_AFTERANO
AFTER INSERT OR UPDATE ON ANOLECTIVO
FOR EACH ROW
DECLARE
POSICAO INTEGER;
BEGIN
--APANHAR O CODIGO DOS NOVOS TUPLOS
POSICAO := NOVOANOLECTIVO.NOVOSTUPLOS.COUNT + 1;
NOVOANOLECTIVO.NOVOSTUPLOS(POSICAO) := :NEW.CODIGO;
END;
答案 0 :(得分:1)
正如您在评论中所说,错误出现在此行NOVOANOLECTIVO.NOVOSTUPLOS(POSICAO) := :NEW.CODIGO;
上,这意味着错误是因为您将:new.codigo
放在NOVOSTUPLOS(POSICAO)
ROWID
上,这是一个:new.codigo
表1}}类型和ROWID
应该是{{1}}的相同类型(不管是什么,我只是在查询中知道它。)但事实并非如此。