繁体   English   中英

在 Oracle SQL 中重写 SQL-Server 中的触发器

[英]Rewriting a trigger in SQL-Server in Oracle SQL

我在 SQL Server 中创建了一个触发器,它被设计为在数据输入到特定表时起作用,在本例中是一个名为 FORECAST_TEST_DATA 的表。 触发器是然后从插入的行中获取某些值并将它们插入到名为 PRODUCT_TEST_DATE 表的表中。 然后使用共享公共 PROD_NUM 值的产品,用表中已经存在的值填充表中的其他列。

SQL Server 中的查询如下所示:

CREATE OR ALTER TRIGGER FORECAST_TRIGGER ON FORECAST_TEST_DATA
FOR INSERT
AS
INSERT INTO PRODUCT_TEST_DATA
(PRODUCT_TEST_DATA.PROD_NUM, PRODUCT_TEST_DATA.MONTH, PRODUCT_TEST_DATA.STORE_TYPE, 
PRODUCT_TEST_DATA.PRODUCT_KEY, PRODUCT_TEST_DATA.CATEGORY, 
PRODUCT_TEST_DATA.BRAND_NAME,PRODUCT_TEST_DATA.COLOUR)
SELECT
inserted.PROD_NUM, inserted.MONTH, inserted.STORE_TYPE, inserted.PRODUCT_KEY,
PRODUCT_TEST_DATA.CATEGORY, PRODUCT_TEST_DATA.BRAND_NAME,PRODUCT_TEST_DATA.COLOUR
FROM inserted, PRODUCT_TEST_DATA
WHERE inserted.PROD_NUM = PRODUCT_TEST_DATA.PROD_NUM
GO

触发器已经具有所需的功能,只需将其重写为 Oracle SQL。

感谢您花时间阅读此问题,我们将不胜感激。

这是 oracle 语法 -

CREATE OR REPLACE TRIGGER FORECAST_TRIGGER
AFTER INSERT ON FORECAST_TEST_DATA
AS
BEGIN
INSERT INTO PRODUCT_TEST_DATA
(PROD_NUM, MONTH, STORE_TYPE, PRODUCT_KEY, CATEGORY, BRAND_NAME, COLOUR)
SELECT
:new.PROD_NUM, :new.MONTH, :new.STORE_TYPE, :new.PRODUCT_KEY,
:new.CATEGORY, :new.BRAND_NAME, :new.COLOUR
FROM PRODUCT_TEST_DATA
WHERE :new.PROD_NUM = PROD_NUM;
END;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM