www.bcmx.net > orAClE 创建触发器问题

orAClE 创建触发器问题

一般在sqlplus或者其他第三方oracle工具中,按照语法及需求写好代码,直接执行创建过程即可。 一般语法如下: CREATE [OR REPLACE] TRIGGER trigger_name{BEFORE | AFTER }{INSERT | DELETE | UPDATE [OF column [, column …]]}[OR {INSERT | DE...

同意楼上的, 如果你是10g以上的,你可以到em管理器里去查看“用户”,输入soctt 然后为它分配详细的权限。 是在不行 用sys账户登录:然后grant create session to scott; grant create trigger to scott; 还不行那就只有grant dba to scott;

CREATE or replace TRIGGER Insert_Purchase after INSERT ON Purchase FOR EACH ROW BEGIN if inserting then UPDATE Part SET partamount = partamount + :new.pamount WHERE Part.partnum = :new.partnum; end if; END; update少加了分号,if...

create trigger tr_user befeor insert on t_user for each row when(:new.ID is null) begin select UserIdentity.nextval into :NEW.ID from dual; end;

出现 编译错误的话, 会不会是你的 WELNE_ACCOUNT 表里面, 没有 pwdhash 这一列啊. 还有一点就是, 那句 REFERENCING OLD AS "OLD" NEW AS "NEW" 完全没有意义啊. old as old new as new 。 一般人家是偷懒的情况下, 不想输入 :old 或者 :new 的...

可以在 user_triggers 视图里面查询 已创建的触发器。 例如: SELECT trigger_name, statusFROM user_triggersWHERE table_name='TEST_TRIGGER_TABLE';TRIGGER_NAME STATUS------------------------------------------------------------ ------...

insert 触发器只有:new,没有:old 而且我看你判断条件好像也有问题。

表test中有id这个字段吗?

已经很清楚了,应该是你没有创建相应的表。 desc a desc record 看结果

这类编译错误,一般是SQL语句敲错,或者表名不存在。 你可以把其中的语句注释掉大部分,然后看看有没错。 有错,这样就容易检查 如果没错,就释放出来一点语句检查。 很快就搞定错误了,加油!

网站地图

All rights reserved Powered by www.bcmx.net

copyright ©right 2010-2021。
www.bcmx.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com