上面这种方式不可以
时间: 2024-02-23 07:02:43 浏览: 17
如果您需要查询表中某个字段的修改时间,可以通过以下步骤实现:
1. 查询表的元数据,获取表的列信息,包括列名、数据类型、是否为空、列的默认值等。可以通过查询 `user_tab_columns` 系统表或者 `all_tab_columns` 系统表来实现。例如:
```
SELECT column_name, data_type, nullable, data_default
FROM user_tab_columns
WHERE table_name = 'your_table_name' AND column_name = 'your_column_name';
```
2. 查询表的日志,获取表中某个字段的修改历史记录。可以通过查询 `flashback_transactions` 系统表或者 `logmnr_contents` 系统表来实现。例如:
```
SELECT scn, sql_redo
FROM flashback_transactions
WHERE table_name = 'your_table_name' AND seg_name = 'your_table_name' AND seg_type = 'TABLE' AND
sql_redo LIKE '%your_column_name%';
```
或者:
```
SELECT scn, sql_redo
FROM logmnr_contents
WHERE table_name = 'your_table_name' AND seg_name = 'your_table_name' AND seg_type = 'TABLE' AND
sql_redo LIKE '%your_column_name%';
```
这两个系统表都可以查询到表的 DML 操作历史记录,并且可以通过过滤 `sql_redo` 字段中的 SQL 语句来查询到修改某个字段的操作。`scn` 字段表示该操作发生的 SCN 编号,可以用于查询该操作的时间戳。
综上,以上两种方式都可以查询到表中某个字段的修改时间。第一种方式是通过查询元数据来获取表的列信息,第二种方式是通过查询日志来获取表中某个字段的修改历史记录。