如何在sql中列出用户创建的表名?
我在SQL11g中创建了大约20个表,但丢失了它们的记录。有没有办法列出我创建的表名。如何在sql中列出用户创建的表名?,sql,oracle11g,Sql,Oracle11g,我在SQL11g中创建了大约20个表,但丢失了它们的记录。有没有办法列出我创建的表名。 SELECT table\u name FROM user\u tables不是解决方案。帮助您 SELECT TABLE_NAME FROM USER_ALL_TABLES 如果user_all_表不是您想要的结果,则必须通过以下方式依赖dba_表: SELECT owner, table_name FROM dba_tables 但是,与用户表相比,您需要更多的priv。显然,解决此问题的最佳方法
SELECT table\u name FROM user\u tables
不是解决方案。帮助您
SELECT TABLE_NAME FROM USER_ALL_TABLES
如果user_all_表不是您想要的结果,则必须通过以下方式依赖dba_表:
SELECT owner, table_name
FROM dba_tables
但是,与用户表相比,您需要更多的priv。显然,解决此问题的最佳方法是考虑名为 最后一次分析 它给出了表格最近一次分析的日期
因此,您可以借助日期函数轻松查询数据库。首先,以sys登录,然后才能查看整个数据库中的表 其次,使用sys运行此查询
SELECT owner, table_name FROM dba_tables WHERE owner='HR';
这将显示HR架构所拥有的所有表。记住对所有者使用大写字母(HR)
,否则您将收到错误
希望这有帮助。哪种SQL?SQL SERVER、MySQL等。我猜这是oracle,因为11gwhy SELECT table_name FROM user_tables不是解决方案?@danhip它会为您提供所有您拥有的表名(您可以使用)。它给出了大约3000个结果。“我甚至不确定我的20在里面。”跳车者1337这就是我所说的解决方案。这不对。这不是我前面说过的答案。我是唯一的用户,也是我的dba的所有者,所以这个命令对我来说和我在问题中给出的差不多。两者都返回相同的结果。