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

orAClE 创建触发器问题

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

那个 PRAGMA AUTONOMOUS_TRANSACTION 的代码, 单独写到一个存储过程里面 然后触发器里面 , 调用存储过程. 例如: -- 获取当前流水号的存储过程.CREATE OR REPLACE PROCEDURE GetNextSeqNo ( p_result IN OUT VARCHAR2) AS-- 定义 “自治事务”PRAGM...

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;

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...

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

表test中有id这个字段吗?

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

oracle 多表更新 不能这样写 这是sql的写法 MERGE INTO class USING (select a.id from :new a join :old b on a.id = b.id ) d on (class.id = d.id) WHEN MATCHED THEN UPDATE SET class.studentnumber = class.studentnumber+1 , ; commit; -...

是不是权限的问题 用管理员试试可以不可以以创建

update employ set salary := old.salary*2; 将这行改为下面。再试一试。 update employ set salary = :old.salary*2;

网站地图

All rights reserved Powered by www.bcmx.net

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