【发布时间】:2017-07-28 19:10:25
【问题描述】:
我有如下分类产品的表格
Category_ID VARCHAR2 (1024) NOT NULL, --PK
Category_Desc VARCHAR2 (1024) NOT NULL,
Class1_ID VARCHAR2 (1024),
Class1_Desc VARCHAR2 (1024),
Class2_ID VARCHAR2 (1024),
Class2_Desc VARCHAR2 (1024),
Class3_ID VARCHAR2 (1024),
Class3_Desc VARCHAR2 (1024),
Notes VARCHAR2 (1024),
列Category_ID 由序列Seq_Category_ID 填充,现在使用触发器
我想做的是
用列
Category_ID的值填充列Class1_ID与 它是序列名称Seq_Class1_ID用列
Category_ID的值填充列Class2_ID与Class1_ID连接 与它连接的是序列名称Seq_Class2_ID
等等……
但我收到错误提示
[错误] PLS-00103 (11: 4): PLS-00103: 遇到符号“{”时 期待以下之一:
( begin case declare exit for goto if loop mod null pragma raise 使用时返回选择更新
mod 继续当前 sql 执行 forall 合并 [错误] PLS-00103 (13: 2):PLS-00103:遇到符号“}”时 期待以下之一:
( begin case declare else elsif end exit for goto if loop mod
null pragma raise return select update while with
终于
有没有更好的方法来处理我所说的案例?
CREATE OR REPLACE TRIGGER Trg_Category_ID_Seq
BEFORE INSERT
ON Product_Classification
FOR EACH ROW
WHEN (NEW.Category_ID IS NULL)
BEGIN
:NEW.Category_ID := Seq_Category_ID.NEXTVAL;
IF(NEW.Class1_Desc IS NOT NULL AND NEW.Category_ID IS NOT NULL AND NEW.Class1_ID IS NULL ) THEN
{
INSERT INTO Product_Classification (Class1_ID)VALUES(NEW.Category_ID||Seq_Class1_ID.NEXTVAL);
}
END;
【问题讨论】:
标签: oracle oracle12c database-trigger