Я получаю эту ошибку, которая, кажется, связана с орфографией столбцов. Тем не менее, я на 99 процентов уверен, что все написано правильно, но я не вижу причин, чтобы получить ошибку, которую я делаю....
Вот исходник:
CREATE OR REPLACE TRIGGER update_qoh_trigger
AFTER INSERT ON sales
FOR EACH ROW
DECLARE
v_qoh products.qoh%TYPE;
v_new_qoh products.qoh%TYPE;
BEGIN
SELECT qoh INTO v_qoh
FROM products
WHERE id = :new.product_id;
v_new_qoh := v_qoh - new.quantity; // ERROR HERE
UPDATE products
SET qoh = :v_new_qoh
WHERE id = :new.product_id;
END;
/
sho err
И это дает:
12/12 PLS-00049: bad bind variable 'V_NEW_QOH'
Я пытался заменить 12-ю строку на следующие комбинации:
v_new_qoh := :v_qoh - :new.quantity;
:v_new_qoh := :v_qoh - :new. quantity;
:v_new_qoh = :v_qoh - :new.quantity;
:v_new_qoh := v_qoh - :new.quantity;
:v_new_qoh := :v_qoh - new.quantity;
v_new_qoh := v_qoh - :new.quantity;
Но это все равно дает мне ошибку.
Таблица продуктов выглядит так:
CREATE TABLE products (
id NUMBER,
name VARCHAR2,
price NUMBER,
qoh NUMBER(2)
);
CREATE TABLE sales (
id NUMBER(10) AUTO_INCREMENT,
customer_id NUBMER(3),
product_id NUMBER(3),
quantity NUMBER(2),
price NUMBER(5,2),
sale_date DATE,
despatch_id NUMBER(10)
);
Заранее спасибо за помощь.