gpt4 book ai didi

sql - Oracle SQL PLS-00049 : bad bind variable

转载 作者:行者123 更新时间:2023-12-03 20:15:30 30 4
gpt4 key购买 nike

我收到此错误,这似乎是列拼写的问题。但是,我 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)
    );

    在此先感谢您的帮助。

    最佳答案

    将更新更改为:

    UPDATE products
    SET qoh = v_new_qoh
    WHERE id = :new.product_id;

    即 v_new_qoh 前面没有冒号。

    行号 (12) 指的是 PL/SQL 块的行号。
    该块以单词 DECLARE 开头,因此第 12 行是以下开头的行:
    SET qoh = :v_new_qoh

    关于sql - Oracle SQL PLS-00049 : bad bind variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244714/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com