提问人:Pitt Bear 提问时间:10/24/2023 最后编辑:jarlhPitt Bear 更新时间:10/24/2023 访问量:70
如何查看日期?
How to check dates?
问:
我需要建议。
我想编写一个触发器,它将填充表中的。 是 SYSDATE。
根据表条目的时间,我希望 SQL 输入相应的 .Id_tariff
Elec_prod
Date_measurement
Id_tariff
你知道怎么做吗?
我正在考虑编写一个 COMPOUND 触发器,以首先下载e_tariffs表的全部内容,然后在循环中将 date_measurement 与 Date_start 进行比较
答:
0赞
SmellyCat
10/24/2023
#1
从 Oracle PL/SQL 语言参考来看,您需要类似的东西:
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
评论
0赞
Pitt Bear
10/24/2023
这看起来还不错,谢谢
1赞
Alex Poole
10/24/2023
您需要添加 ,尤其是这样您就可以引用伪行。你需要一个子句,否则你将获取一个不确定的匹配行。不要 - 这将(如果有效)更新整个表;改为设置此行的值,使用 .你还缺少几个分号。(如果没有可用的关税,这将出错,但 OP 没有说明这是否会发生,或者如果发生该怎么办。FOR EACH ROW
:NEW
SELECT
ORDER BY
UPDATE
:NEW.ID_Tariff := Found_Tariff;
评论
Id_tariff
id_tariff
CREATE TABLE