如何获取在oracle中启动insert查询的用户的姓名
因此,我的主要工作是创建一个触发器,该触发器在给定表上的插入查询之后启动,以更新另一个表,并读取启动插入查询的用户的名称!如何获取在oracle中启动insert查询的用户的姓名,oracle,session,triggers,insert,Oracle,Session,Triggers,Insert,因此,我的主要工作是创建一个触发器,该触发器在给定表上的插入查询之后启动,以更新另一个表,并读取启动插入查询的用户的名称! 关于如何获取用户名的任何建议?例如,如果您想将插入记录到Scott的EMP表中,您可以这样做: (您并不真的需要这个;我只是用它来设置日期格式): 日志表和触发器: SQL> create table log_emp (empno number, who varchar2(30), datum date); Table created. SQL> creat
关于如何获取用户名的任何建议?例如,如果您想将插入记录到Scott的EMP表中,您可以这样做: (您并不真的需要这个;我只是用它来设置日期格式): 日志表和触发器:
SQL> create table log_emp (empno number, who varchar2(30), datum date);
Table created.
SQL> create or replace trigger trg_ai_emp
2 after insert on emp
3 for each row
4 begin
5 merge into log_emp l
6 using (select :new.empno empno
7 from dual
8 ) x
9 on (x.empno = l.empno)
10 when matched then update set
11 l.who = user,
12 l.datum = sysdate
13 when not matched then insert values
14 (:new.empno, user, sysdate);
15 end;
16 /
Trigger created.
测试:
SQL> insert into emp (empno, ename) values (1, 'Little');
1 row created.
SQL> select * from log_emp;
EMPNO WHO DATUM
---------- ------------------------------ -------------------
1 SCOTT 30.11.2019 18:57:30
SQL>
SQL> insert into emp (empno, ename) values (1, 'Little');
1 row created.
SQL> select * from log_emp;
EMPNO WHO DATUM
---------- ------------------------------ -------------------
1 SCOTT 30.11.2019 18:57:30
SQL>