的数据我需要建议。我想编写一个触发器,用于填充Elec_prod表中的Id_tariff。Date_measurement是SYSDATE。根据创建表条目的时间,我希望SQL输入适当的Id_tariff。你知道该怎么做吗?我正在考虑编写一个复合触发器,首先下载e_tariates表的全部内容,然后在循环中比较date_measurement和Date_start
Elec_prod
Id_tariff
Date_measurement
dbf7pr2w1#
根据Oracle PL/SQL语言参考,您需要的内容如下:
CREATE OR REPLACE TRIGGER EProd_Tariff_AddAFTER INSERT OR UPDATE OF Date_measurement ON Elec_ProdDECLARE Found_Tariff NUMBER(3)BEGIN -- look up matching tariff SELECT ID_Tariff FROM E_tariffs INTO Found_Tariff WHERE :NEW.Date_Measurement>=E_tariffs.Date_start FETCH FIRST 1 ROWS -- apply update UPDATE Elec_Prod Set ID_Tariff = Found_TariffEND
CREATE OR REPLACE TRIGGER EProd_Tariff_Add
AFTER INSERT OR UPDATE OF Date_measurement ON Elec_Prod
DECLARE
Found_Tariff NUMBER(3)
BEGIN
-- look up matching tariff
SELECT ID_Tariff FROM E_tariffs
INTO Found_Tariff
WHERE :NEW.Date_Measurement>=E_tariffs.Date_start
FETCH FIRST 1 ROWS
-- apply update
UPDATE Elec_Prod Set ID_Tariff = Found_Tariff
END
字符串
1条答案
按热度按时间dbf7pr2w1#
根据Oracle PL/SQL语言参考,您需要的内容如下:
字符串