这个触发器那儿有错,编译时提示有编译错误.

hjx7812 2002-11-08 01:28:16
create or replace trigger test_trigger
after insert on saler.tjy001 for each row
begin
select user_style_id,tele_type,user_style from tjy001
insert into tjy002(user_style_id,tele_type,user_style);
end;
提示信息:
PLS-00103: ³öÏÖ·ûºÅ "END"ÔÚÐèÒªÏÂÁÐ֮һʱ£º
.,@;returnreturning
<an identifier><a double-quoted delimited-identifier>group
havingintersectminuspartitionstartsubpartitionunionwhere
connectSAMPLE_
符号";"被替换为"end"后继续
...全文
52 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
skypeople 2002-11-08
  • 打赏
  • 举报
回复
for each row
表示每行都执行触发器;而去掉则一次批量只执行一次;
iis40 2002-11-08
  • 打赏
  • 举报
回复
去掉 for each row
hjx7812 2002-11-08
  • 打赏
  • 举报
回复
加上for each row和去掉它有什么区别?
那儿有关于trigger的电子文档?
bzszp 2002-11-08
  • 打赏
  • 举报
回复
去掉for each row 就行了,不知道你的需求具体是什么
glmcglmc 2002-11-08
  • 打赏
  • 举报
回复
行级触发器
不能表自引用
hjx7812 2002-11-08
  • 打赏
  • 举报
回复
改过以后没有了这个编译没有错误了,但执行时又发生了这个错误.
ERROR 位于第一行
ORA-04091: 表saler.tjy001发生了变化,触发器/函数不能读,
ORA-06512: 在SALER.TEST_TRIGGER", line 2
ORA-04088: 触发器'SALER.TEST_TRIGGER' 在执行过程中出错
bzszp 2002-11-08
  • 打赏
  • 举报
回复
没见过,oracle还支持这种写法么?
linush2001 2002-11-08
  • 打赏
  • 举报
回复
语法有误,应该用select ... insert into ...
luckysxn 2002-11-08
  • 打赏
  • 举报
回复
up,up
bzszp 2002-11-08
  • 打赏
  • 举报
回复
正确了,
自己试一下不就知道了
chenbf_sz 2002-11-08
  • 打赏
  • 举报
回复
是这个意思吗?
chenbf_sz 2002-11-08
  • 打赏
  • 举报
回复
create or replace trigger test_trigger
after insert on saler.tjy001 for each row
begin
insert into tjy002(user_style_id,tele_type,user_style)
select user_style_id,tele_type,user_style from tjy001;
end;
haichuang 2002-11-08
  • 打赏
  • 举报
回复
sql语句的语法好像有错误. 看你的意思应该是用select ... into ...语句吧? 哪有select ... insert into ...这样用的?

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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