CREATE TABLE stubirthday
(
id varchar2(6) NOT NULL,
name varchar2(8) NULL,
birthday timestamp NULL
);CREATE TABLE stuage
(
id varchar2(6) NOT NULL,
age number(3) NULL
);
当改变stubirthday表 stuage表跟这变化
下面是建立的触发器
create or replace trigger aiudfer_stubirthday after insert or update or delete
on stubirthday
for each row
begin
IF INSERTING THEN
INSERT INTO stuage(id,age) VALUES(:NEW.id,(to_number(to_char(sysdate,'yyyy'))-to_number(to_char(:NEW.birthday,'yyyy')));
ELSIF DELETING THEN
DELETE FROM stuage WHERE id=:OLD.id;
ELSE
UPDATE stuage SET age=(to_number(to_char(sysdate,'yyyy'))-to_number(to_char(:NEW.birthday,'yyyy')) WHERE id=:OLD.id;
END IF;
end ;
请问什么地方错了,orcle10g的警告: 创建的触发器带有编译错误。
(
id varchar2(6) NOT NULL,
name varchar2(8) NULL,
birthday timestamp NULL
);CREATE TABLE stuage
(
id varchar2(6) NOT NULL,
age number(3) NULL
);
当改变stubirthday表 stuage表跟这变化
下面是建立的触发器
create or replace trigger aiudfer_stubirthday after insert or update or delete
on stubirthday
for each row
begin
IF INSERTING THEN
INSERT INTO stuage(id,age) VALUES(:NEW.id,(to_number(to_char(sysdate,'yyyy'))-to_number(to_char(:NEW.birthday,'yyyy')));
ELSIF DELETING THEN
DELETE FROM stuage WHERE id=:OLD.id;
ELSE
UPDATE stuage SET age=(to_number(to_char(sysdate,'yyyy'))-to_number(to_char(:NEW.birthday,'yyyy')) WHERE id=:OLD.id;
END IF;
end ;
请问什么地方错了,orcle10g的警告: 创建的触发器带有编译错误。
解决方案 »
- 推荐一篇文章—oracle的事物隔离级别(isolation_level)
- 非常菜的问题,帮忙看一下,谢谢了!
- Oracle9i中关于网状数据的查询
- 谁弄过informix 转到 oracle 10G ?还有现在一个Oracle 10G 标准版大概多少钱
- 一个简单的插入存储过程 请帮忙看一下
- imp导入时遇到
- 如何在oracle中选择前10条语句?(像select top 10 from biao)一样?
- 小case:请问最小安装oracle 9i需要多大地方?
- 请高手指教:关于写存储过程(高分解答)
- 绝顶高手请进,先给这些,成事后开新贴加300,还不够再加
- 如何查询被误删的数据
- 多表的统计查询问题,请教
create or replace trigger aiudfer_stubirthday after insert or update or delete
on stubirthday for each row
begin
IF INSERTING THEN
INSERT INTO stuage(id,age) VALUES(:NEW.id,(to_number(to_char(sysdate,'yyyy'))-to_number(to_char(:NEW.birthday,'yyyy')))); --这里少一个
ELSIF DELETING THEN
DELETE FROM stuage WHERE id=:OLD.id;
ELSE
UPDATE stuage SET age=(to_number(to_char(sysdate,'yyyy'))-to_number(to_char(:NEW.birthday,'yyyy'))) -- 这里也少了
WHERE id=:OLD.id;
END IF;
end ;