Pemicu on schema
(tanpa skema yang ditentukan) tidak menyala untuk semua skema. Ini hanya menyala saat aksi pemicu dijalankan oleh pengguna yang memiliki pemicu itu.
Jadi mereka sangat berbeda, dan tidak dapat dipertukarkan.
Berikut adalah contoh yang menyiapkan tabel pencatatan, dan tiga create
pemicu:, on database
dan on schema
untuk pengguna foo
dan bar
:
Connected. -- as mat
SQL> create table mat.log (dt timestamp, who varchar(3),
2 cur varchar(10), own varchar(42), obj varchar(42));
Table created.
SQL> create or replace trigger db_trig
2 after create on database
3 begin
4 insert into mat.log values (systimestamp, 'db', user,
5 ORA_DICT_OBJ_OWNER, ORA_DICT_OBJ_NAME);
6 end;
7 /
Trigger created.
SQL> connect foo/foo
Connected.
SQL> create or replace trigger foo_trig
2 after create on schema
3 begin
4 insert into mat.log values (systimestamp, 'foo', user,
5 ORA_DICT_OBJ_OWNER, ORA_DICT_OBJ_NAME);
6 end;
7 /
Trigger created.
SQL> connect bar/bar
Connected.
SQL> create or replace trigger bar_trig
2 after create on schema
3 begin
4 insert into mat.log values (systimestamp, 'bar', user,
5 ORA_DICT_OBJ_OWNER, ORA_DICT_OBJ_NAME);
6 end;
7 /
Trigger created.
Sekarang mari kita buat tabel dalam foo
skema, sebagai foo
:
SQL> connect foo/foo
Connected.
SQL> create table foo.foo_stuff (id number);
Table created.
Dan mari kita buat tabel dalam foo
skema, seperti bar
:
SQL> connect bar/bar
Connected.
SQL> create table foo.bar_stuff (id number);
Table created.
Inilah yang kami login:
SQL> select * from mat.log order by dt;
DT WHO CUR OWN OBJ
------------------------------ --- ---------- ---------- ---------------
25-NOV-12 07.52.03.797794 PM db FOO FOO FOO_TRIG
25-NOV-12 07.52.03.828670 PM db BAR BAR BAR_TRIG
25-NOV-12 07.52.03.865334 PM foo FOO FOO FOO_STUFF
25-NOV-12 07.52.03.865579 PM db FOO FOO FOO_STUFF
25-NOV-12 07.52.03.894672 PM bar BAR FOO BAR_STUFF
25-NOV-12 07.52.03.894911 PM db BAR FOO BAR_STUFF
6 rows selected.
Begitu:
- dua
create trigger
pernyataan dicatat oleh after create on database
pemicu "global" . Pemicu itu juga mencatat semuanya.
foo
's after create on schema
login penciptaan meja yang dilakukan olehfoo
bar
Pemicu mencatat pembuatan tabel yang dijalankan oleh bar
dirinya sendiri, meskipun bar
membuat tabel dalam foo
skema.