这样创建触发器 那错了? 在线等

wfdoohla 2004-05-12 06:07:42
以下操作都是通过程序连接执行的, 没有实际的意义
只想建立一个最简单的触发器

#表
CREATE TABLE films3 (
code CHARACTER(5),
title CHARACTER VARYING(40),
did DECIMAL(3),
date_prod DATE,
kind CHAR(10)
);

create TRIGGER FILMS3_BEFORE_INSERT_ROW
before insert on films3 for each row
begin
NULL;
end;

insert into films3 ( CODE, TITLE, DID ) values ( 'ss112','tss1s21',192 ) ;

错误为
trigger 'SYSTEM.FILMS3_BEFORE_INSERT_ROW' is invalid and failed re-validation
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wherehome 2004-06-17
  • 打赏
  • 举报
回复
ERROR 位于第 1 行:
ORA-04098: 触发器 'JS_KM_DOCUSER.FILMS3_BEFORE_INSERT_ROW' 无效且未通过重新确认
用的就是可乐吧的试例
这是为什么啊
wherehome 2004-06-17
  • 打赏
  • 举报
回复
ERROR 位于第 1 行:
ORA-04098: 触发器 'JS_KM_DOCUSER.FILMS3_BEFORE_INSERT_ROW' 无效且未通过重新确认
这是为什么啊
ttoc 2004-05-12
  • 打赏
  • 举报
回复
呵呵,我的也是呀,你的上个帖子我就试验过了,和你的一模一样~~
lenoli 2004-05-12
  • 打赏
  • 举报
回复
再重新创建一次;

我都在我机器上试验了
这是我执行的过程

SQL> CREATE TABLE films3 (
2 code CHARACTER(5),
3 title CHARACTER VARYING(40),
4 did DECIMAL(3),
5 date_prod DATE,
6 kind CHAR(10)
7 );

表已创建。

SQL> create TRIGGER FILMS3_BEFORE_INSERT_ROW
2 before insert on films3 for each row
3 begin
4 NULL;
5 end;
6 /

触发器已创建

SQL> insert into films3 ( CODE, TITLE, DID ) values ( 'ss112','tss1s21',192 ) ;

已创建 1 行。
lenoli 2004-05-12
  • 打赏
  • 举报
回复
触发器绝对没有问题
hot.wind 2004-05-12
  • 打赏
  • 举报
回复
1、是不是你使用的是before insert的原因。
2、把NULL;换成1=1;试试。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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