Перезапись триггера в SQL -Сервер в Oracle SQL - PullRequest
0 голосов
/ 23 января 2020

Я создал триггер на сервере SQL, который был разработан, чтобы действовать при каждом вводе данных в определенную таблицу, в данном случае это таблица FORECAST_TEST_DATA. Триггер должен был затем взять определенные значения из вставленной строки и вставить их в таблицу, называемую таблицей PRODUCT_TEST_DATE. Затем остальные столбцы в таблице должны были быть заполнены значениями, которые уже существовали в таблице, с использованием продуктов, имеющих общее значение PROD_NUM.

Запрос на сервере SQL выглядит следующим образом:

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.

Спасибо, что нашли время прочитать эту проблему, любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 января 2020

Вот синтаксис 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...