在历史记录中搜索用户创建的所有表

时间:2012-03-28 13:00:17

标签: sql oracle

我是oracle / sql世界的新手。我知道如何通过自己搜索找到答案,并再次搜索..但是对于我的新问题,我找到了一个很好的答案,所以我只是想要通过过滤创建最后一个表的用户,什么表,创建它等等来查找操作数据库的历史...是sql oracle

我正在使用oracle XE,而客户端是toad。

我用

尝试
select table_name from sys.dba_tables where owner='system' 

但是没有显示我几个月前用系统用户创建的表格。现在我忘记了我创建的表格。

2 个答案:

答案 0 :(得分:2)

字符串匹配区分大小写,并且数据字典中的大多数内容都作为一般规则存储在所有大写字母中。因此,如果将文字更改为大写,则示例查询应返回一些行:

select table_name from sys.dba_tables where owner='SYSTEM'

如果您想查看最近创建的表格,则需要将其加入dba_objects并使用created列进行过滤或排序。

当然,如果您真的只想查看当前登录的架构的表,user_tables是一个更好的查询视图。

根据您的评论,以下是如何获取每个表的最后修改时间:

select table_name, last_ddl_time
  from dba_tables t
       join dba_objects o
         on o.object_name=t.table_name and o.object_type='TABLE' and o.owner = t.owner
  where t.owner='SYSTEM'
    and last_ddl_time >= date '2011-01-02'
    and last_ddl_time <  date '2011-01-10'

(请注意,“已修改”表示对表定义的更改,而不是对其包含的数据的更改。)

答案 1 :(得分:0)

请尝试以下方法之一:

select * from tab;

select * from user_tables;

两者都会给出用户(你)创建的表格列表。