在Oracle中从一个表复制到另一个表时,将数据插入到不同的列中

时间:2014-06-19 12:58:06

标签: oracle

我在Oracle 11g中使用AFTER INSERT行触发器在插入时将特定列从一个表复制到另一个表。我有触发器和插入工作正常。我遇到的问题是我需要在复制时将新数据从一列插入到不同的列中。

触发信息显示为:

BEGIN
 insert into BALES_STORAGE 
               (CROP, 
               CUTTING, 
               DESTINATION, 
               BALES_MOVED, 
               DATE_MOVED, 
               PASTURE, 
               TARGET_LB_PER_DAY)
 values 
               (:new.CROP, 
               :new.CUTTING, 
               :new.MOVING_LOCATION, 
               :new.BALES_MOVED, 
               :new.DATE_MOVED, 
               :new.PASTURE, 
               :new.TARGET_LB_PER_DAY);
END;

第一个表名为" BALES_HARVESTED"触发器将所选列插入的第二个表称为" BALES_STORAGE"。我需要将:new.MOVING_LOCATION数据插入到第二个表中名为DESTINATION的列中。

所以我的问题是:当使用后插入行触发器时,如何更改插入数据的列?

感谢您的帮助。

马修

1 个答案:

答案 0 :(得分:0)

您的触发器代码对我来说很合适。不确定是什么问题。 INSERT语句中的第3列正确映射列。

http://sqlfiddle.com/#!4/2d2fd5/1/1

也许您有不同的结构或外键约束。你能详细说明你得到的错误吗?它是否会产生ORA错误?或者它只是没有产生所需的结果,但没有错误?