У меня есть таблица с именем M_InventoryLine
Создание триггера из другой таблицы
M_InventoryLine
M_Product_ID || QtyEntered
101 || 50
M_Replenish
M_Product_ID || Level_Min
101 || 20
VW_DaftarBarang_Available
M_Product_ID || Available
101 || 35
QtyEntered
не может быть больше, чем Available
+ Level_Min
так, мне нужно Raise Application Error
в триггере.
Я попытался сделать триггер, как это:
CREATE OR REPLACE TRIGGER SAVE_ERROR
BEFORE INSERT OR UPDATE ON M_INVENTORYLINE
FOR EACH ROW
DECLARE
AVAILABLE_ST NUMBER;
MIN_LEVEL NUMBER;
BEGIN
SELECT AVAILABLE INTO AVAILABLE_ST
FROM vw_daftarbarang_available
where m_product_id = :new.m_product_id;
SELECT LEVEL_MIN INTO MIN_LEVEL
FROM M_REPLENISH
WHERE M_PRODUCT_ID = :NEW.M_PRODUCT_ID;
IF :NEW.QTYENTERED > :OLD.AVAILABLE + :OLD.MIN_LEVEL THEN
RAISE_APPLICATION_ERROR(-20000,'QUANTITY IS NOT ENOUGH');
END IF;
END;
Но это не работает. Любое предложение сделать триггер успешным?
Есть ли у вас какие-либо ошибки? Вы вставляете отладочную печать, чтобы посмотреть, какая статута выполняется? –
Я запустил его через SQLPlus, и он говорит, что таблица или представление не существует .. но я уже сделал все таблицы и представления. Что вы подразумеваете под вставкой отладочной печати? Я сожалею, что я новичок ... –