【发布时间】:2013-11-16 15:15:35
【问题描述】:
我遇到了这个错误,不知道如何解决这个错误。所以请帮助我。
错误(8,11): PL/SQL: SQL 语句被忽略
错误(10,26):PL/SQL:ORA-00904:“NEWRETAILPRICE”:标识符无效
错误(17,8):PL/SQL:SQL 语句被忽略
错误(19,57):PL/SQL:ORA-00904:“NEWRETAILPRICE”:标识符无效
错误(25,6):PL/SQL:SQL 语句被忽略
错误(27,26):PL/SQL:ORA-00904:“OLDRETAILPRICE”:标识符无效
我的代码是
CREATE OR REPLACE TRIGGER product_audit
BEFORE INSERT OR DELETE OR UPDATE ON DD_Products
FOR EACH ROW
DECLARE
Var_ChangeType CHAR(1);
BEGIN
IF INSERTING THEN
VAR_ChangeType := 'I';
INSERT INTO DD_PriceChange
(PriceChangeNo, Change_Type, ChangeBy, ChangeDate,
NewProductPrice,NewRetailPrice)
VALUES (ProductHistory_SEQ.NEXTVAL, VAR_ChangeType, USER, SYSDATE,
:NEW.ProductPrice, :NEW.RetailPrice);
ELSIF UPDATING THEN
VAR_ChangeType := 'U';
INSERT INTO DD_PriceChange
(PriceChangeNo, Change_Type, ChangeBy, ChangeDate,
OldProductPrice,OldRetailPrice,NewProductPrice,NewRetailPrice)
VALUES (ProductHistory_SEQ.NEXTVAL, VAR_ChangeType, USER, SYSDATE,
:OLD.ProductPrice, :OLD.RetailPrice,:NEW.ProductPrice, :NEW.RetailPrice);
ELSE
VAR_ChangeType := 'D';
INSERT INTO DD_PriceChange
(PriceChangeNo, Change_Type, ChangeBy, ChangeDate,
OldProductPrice,OldRetailPrice)
VALUES (ProductHistory_SEQ.NEXTVAL, VAR_ChangeType, USER, SYSDATE,
:OLD.ProductPrice, :OLD.RetailPrice);
END IF;
END;
/
我创建了一个这样的表
Create table DD_PriceChange
(
PriceChangeNo NUMBER(5) PRIMARY KEY,
Change_Type CHAR(1),
ChangeBy VARCHAR2(20),
ChangeDate DATE,
OldProductPrice NUMBER(5),
NewProductPrice NUMBER(5),
OldRetailPrice NUMBER(5),
NewRetailPrice NUMBER(5)
);
和
CREATE SEQUENCE ProductHistory_SEQ;
请问有谁知道我为什么会收到这个错误。
【问题讨论】: