ORA-04089: 无法对 SYS 拥有的对象创建触发器

发布时间:2022-01-17 00:00:00

当在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  /

触发器已创建


<<