【发布时间】:2020-03-25 20:27:19
【问题描述】:
所以我的家庭工作是创建一个触发器,该触发器在给定表上的插入查询后启动以更新另一个表..,并读取启动 INSERT 查询的 USER 的名称! 关于如何获取用户名的任何建议?
【问题讨论】:
标签: oracle session triggers insert
所以我的家庭工作是创建一个触发器,该触发器在给定表上的插入查询后启动以更新另一个表..,并读取启动 INSERT 查询的 USER 的名称! 关于如何获取用户名的任何建议?
【问题讨论】:
标签: oracle session triggers insert
例如,如果您想将插入记录到 Scott 的 EMP 表中,您可以这样做:
(你真的不需要这个;我用它只是为了设置日期格式):
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
Session altered.
日志表和触发器:
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>
【讨论】: