我在触发器中的一段代码如下:
v_Code1:=Substr(:New.PARTNO,1,1);
v_Code2:=Substr(:New.PARTNO,2,1);
v_Code3:=Substr(:New.PARTNO,3,1);
Update SPSORT3 Set SPSORT3.SEQNO=SPSORT3.SEQNO+1
From SPSORT3,SPSORT2
Where SPSORT3.SORTCODE=v_Code3
And SPSORT3.PARENTCODE=v_Code2
And SPSORT2.PARENTCODE=v_Code1
And SPSORT3.PARENTCODE=SPSORT2.Sortcode;编译时为什么提示说From 子语句后面那里的句语未结束???如果不要From 子句,又报SPSORT2.SORTCODE为非法标识求助
v_Code1:=Substr(:New.PARTNO,1,1);
v_Code2:=Substr(:New.PARTNO,2,1);
v_Code3:=Substr(:New.PARTNO,3,1);
Update SPSORT3 Set SPSORT3.SEQNO=SPSORT3.SEQNO+1
From SPSORT3,SPSORT2
Where SPSORT3.SORTCODE=v_Code3
And SPSORT3.PARENTCODE=v_Code2
And SPSORT2.PARENTCODE=v_Code1
And SPSORT3.PARENTCODE=SPSORT2.Sortcode;编译时为什么提示说From 子语句后面那里的句语未结束???如果不要From 子句,又报SPSORT2.SORTCODE为非法标识求助
UPDATE <table_name> <alias>
SET (<column_name>,<column_name> ) = (
SELECT (<column_name>, <column_name>)
FROM <table_name>
WHERE <alias.column_name> = <alias.column_name>);
你的语句可以改成这样: Update SPSORT3 Set SPSORT3.SEQNO=SPSORT3.SEQNO+1
Where SPSORT3.SORTCODE=v_Code3
And SPSORT3.PARENTCODE=v_Code2
And SPSORT3.PARENTCODE in (
select Sortcode from SPSORT2 where SPSORT2.PARENTCODE=v_Code1 )
Where SPSORT3.SORTCODE=v_Code3
And SPSORT3.PARENTCODE=v_Code2
And SPSORT3.PARENTCODE=(Select SORTCODE From SPSORT2 Where PARENTCODE=v_Code1);