在Oracle 11g中,如何从user_tables中提取我创建的表(默认情况下不显示100个表)?
我编写了以下查询来获取所有用户表的列表,
SELECT table_name FROM user_tables;
但是,这给了我很长的表列表,与我无关。我只想要由我手动创建的表的列表。我知道到目前为止,我在数据库中创建的表只有4-5个。
答案 0 :(得分:0)
我想您不是唯一使用数据库中用户/模式的人。您可以使用user_objects视图运行查询。按CREATED降序对其进行排序,如下所示。
select *
from user_objects
where object_type = 'TABLE'
--and created BETWEEN :P_DATE1 AND :P_DATE2
order by created desc
如果再次创建另一个表,请在表名称中添加一些提示/标记。可能是您的姓名缩写或前缀,让您知道它是您的表。
样本表名称:ABC_TABLE1
然后,您可以只使用下面的查询来获取您创建的表。
SELECT *
FROM user_tables
WHERE table_name LIKE 'ABC%';
答案 1 :(得分:0)
我是由oracle用户创建的吗?
如果其他任何用户都有权在架构上创建表,则无法使用user_tables找到该表。
如果您记得表名,则可以从user_tables中过滤掉它。
希望对您有帮助。
答案 2 :(得分:0)
由于@Littlefoot,我了解到我正在使用“系统”(默认)架构,而不是创建自己的架构。因此,在该系统架构中,有大量可用的默认表。因此,通过查询“ users_tables”,我还获得了所有系统默认表以及创建的表。