大家看看为什么会报错

aq165 2009-04-26 12:14:52
CREATE OR REPLACE TRIGGER tr_check
BEFORE INSERT ON Shelf_Reading FOR EACH ROW WHEN(new.readpointID=004 or new.readpointID=005)
DECLARE
v_eventID1 NUMBER;
v_eventID2 NUMBER;
BEGIN
SELECT max(eventID) INTO v_eventID1 from checkout;
if v_eventID1 is null then
v_eventID2:=1;
else
set v_eventID2:=v_eventID1+1;
end if;
INSERT INTO checkout VALUES(:v_eventID2,001,:new.readpointID,005,003,:new.epc,0.8,005,sysdate,sysdate);
UPDATE Voc_epcobject
SET statu='已售'
WHERE ecp=new.epc;
END tr_check;
/
报的错
9/6 PL/SQL: SQL Statement ignored
9/10 PL/SQL: ORA-00922: 选项缺失或无效
11/31 PLS-00049: 错误的赋值变量 'V_EVENTID2'
...全文
81 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanglei8 2009-04-26
  • 打赏
  • 举报
回复
试试

CREATE OR REPLACE TRIGGER tr_check
BEFORE INSERT ON Shelf_Reading
FOR EACH ROW
WHEN (:new.readpointID = 004 or :new.readpointID = 005)
DECLARE
v_eventID1 NUMBER;
v_eventID2 NUMBER;
BEGIN
SELECT max(eventID) INTO v_eventID1 from checkout;
if v_eventID1 is null then
v_eventID2 := 1;
else
set v_eventID2 := v_eventID1 + 1;
end if;
INSERT INTO checkout
VALUES
(v_eventID2,
001,
:new.readpointID,
005,
003,
:new.epc,
0.8,
005,
sysdate,
sysdate);
UPDATE Voc_epcobject SET statu = '已售' WHERE ecp = :new.epc;
END tr_check;
aq165 2009-04-26
  • 打赏
  • 举报
回复
高手呢,怎么没帮忙的啊?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧