当在sys用户下创建触发器时,报错ORA-04089,如下: SQL> create or replace trigger bar_code_tg 2 before insert on sjk_bar_code for each row 3 begin 4 select bar_code_sequence.nextval into :new.idfrom dual; 5 end; 6 / create or replace trigger bar_code_tg * 第 1 行出现错误: ORA-04089: 无法对 SYS 拥有的对象创建触发器 异常原因:所有以sysdba登陆的账户都不能创建触发器 解决方案:以normal方式登陆数据库建表,建触发器 执行过程: SQL> show user USER 为"SYS" SQL> create user bar identified by bar; 用户已创建。 SQL> grant connect,resource,unlimited tablespace to bar; 授权成功。 SQL> conn bar/bar; 已连接。 SQL> create table SJK_BAR_CODE 2 ( 3 id number(12) not null, 4 rule varchar2(255), 5 esp_no varchar2(100), 6 table_name varchar2(10), 7 esp_id number(12), 8 is_del number(1), 9 create_time date, 10 update_time date, 11 esp_content varchar2(100) 12 ) 13 tablespace users 14 pctfree 10 15 initrans 1 16 maxtrans 255 17 storage 18 (initial 64K 19 minextents 1 20 maxextents unlimited 21 ) 22 ; 表已创建。 SQL> create or replace trigger bar_code_tg 2 before insert on sjk_bar_code for each row 3 begin 4 select bar_code_sequence.nextval into :new.idfrom dual; 5 end; 6 / 触发器已创建
|