我正在开发oracle SQL开发人员中的触发器,它会将特定表X中每个新插入的行复制到另一个表Y.X和Y表中的属性数不匹配。这就是为什么我只是在表X中获取一部分属性并填写表Y. 这是我编写的代码,但它不起作用:
CREATE OR REPLACE TRIGGER ESURUSAGE
AFTER INSERT
ON X
FOR EACH ROW
DECLARE
user_ID Varchar(10);
BEGIN
Select user_name INTO user_ID
From X A
Where A.user_name = :new.user_name;
INSERT INTO Y
('DSS', SYSDATE, upper(user_ID) , null , null, upper(user_ID), upper(user_ID), SYSDATE, SYSDATE);
END;
答案 0 :(得分:0)
您不需要从表X中选择user_name,因为您已经拥有此信息。您的插入语句中还有一个备用“,”。试试这样的事情
CREATE OR REPLACE TRIGGER ESURUSAGE
AFTER INSERT
ON X
FOR EACH ROW
BEGIN
INSERT INTO Y VALUES
('DSS', SYSDATE, upper(:new.user_name) , null , null, upper(:new.user_name), upper(:new.user_name), SYSDATE, SYSDATE);
END;