PL/SQL: SQL Statement ignored; ORA-00913: 值过多

lincs1234dn 2011-05-22 09:50:12
SQL> create or replace trigger a_trigger after
2 insert or update or delete
3 on A
4 for each row
5 declare
6 l_action char(1);
7 begin
8 if :new.aid <> :old.aid
9 then
10 dbms_output.put_line('error');
11 end if;
12 if inserting
13 then
14 l_action :='I';
15 elsif updating
16 then
17 l_action :='U';
18 elsif deleting
19 then
20 l_action :='D';
21 end if;
22 insert into AT values(:new.aid,l_action, sysdate,user,:new.f,:old.f,:old.isbn,:new.f,:new.isbn)
;
23 end;
24 /

警告: 创建的触发器带有编译错误。

SQL> show error
TRIGGER A_TRIGGER 出现错误:

LINE/COL ERROR
-------- -----------------------------------------------------------------
18/1 PL/SQL: SQL Statement ignored
18/13 PL/SQL: ORA-00913: 值过多
请大侠帮忙,谢谢了,
...全文
1518 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyyuns 2011-05-23
  • 打赏
  • 举报
回复
应该是insert的语句的问题,把insert语句注释掉试试。
huangdh12 2011-05-23
  • 打赏
  • 举报
回复
是否是你的at表里面没有那么多字段?
UPC子夜 2011-05-22
  • 打赏
  • 举报
回复
你在左边的树中找到你的触发器 右键查看 右下角会有错误提示 你选中的话 会定位到某一行的 你试试
我感觉是你的这句话insert into AT values(:new.aid,l_action, sysdate,user,:new.f,:old.f,:old.isbn,:new.f,:new.isbn)
有问题
AT表中有几列啊 是不是字段没对应上?
还有 不建议用 insert into table values()这种形式
最好把字段列出来 insert into table (col)values(colvalue)

17,086

社区成员

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

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