查询oracle的表被谁更新
时间: 2023-09-11 16:04:13 浏览: 65
你可以通过查询Oracle数据库中的系统日志表来查找哪个用户在什么时间更新了表。其中,可以使用以下的 SQL 查询语句来查询表的更新记录:
```sql
SELECT username, os_username, machine, program, TO_CHAR(timestamp, 'yyyy-mm-dd hh24:mi:ss') AS timestamp, action_name, table_name
FROM dba_audit_trail
WHERE action_name = 'UPDATE'
AND table_name = 'your_table_name';
```
这条 SQL 语句将返回所有更新指定表名("your_table_name")的记录,其中包括用户名、操作系统用户名、机器名、程序名、时间戳、操作名称等信息。
相关问题
oracle查询最近更新的表
你可以使用以下SQL语句查询最近更新的表:
```
SELECT table_name, last_analyzed
FROM all_tables
WHERE owner = 'your_schema_name'
ORDER BY last_analyzed DESC;
```
这将返回你指定schema中所有表的名称和最后一次更新的日期,按照最后分析日期降序排列。如果你希望查找所有schema中最近更新的表,可以使用DBA_TABLES或USER_TABLES视图代替ALL_TABLES视图。
oracle多表关联更新
可以使用以下语法进行Oracle多表关联更新:
```sql
UPDATE table1 t1
SET t1.column1 = value1, t1.column2 = value2, ...
WHERE EXISTS
(SELECT 1
FROM table2 t2
WHERE t1.join_column = t2.join_column
AND t2.condition = value3)
```
其中,table1和table2是需要关联的表,join_column是关联的列,condition是table2中的条件,value1、value2和value3是需要更新的值。使用子查询的方式,可以将table1和table2进行关联,然后根据条件更新table1的值。需要注意的是,如果table1和table2中有相同的列名,需要使用表别名进行区分。