【问题标题】:Selecting all User Created Tables in ORACLE在 ORACLE 中选择所有用户创建的表
【发布时间】:2016-09-25 15:32:29
【问题描述】:

我正在使用 Oracle Xpress 版。我想知道如何在 Oracle DB 中只选择用户创建的表。?

我正在使用这个查询:

select * from user_tables;

但它显示 24 行。但我只创建了 6 个表。我不知道其他表(如 APEX$_WS_FILES,DEPTDEMO_USERS,APEX$_ACL,APEX$_WS_HISTORYetc)显示的原因和位置。

如何避免那些无用的表?

【问题讨论】:

  • This DBA Stack Exchange article 可能对您有用。您可以限制安装数据库时创建的表。
  • 这些似乎是您(或其他有权访问架构的人)在安装 APEX 或打包的 APEX 应用程序时创建的表。 Oracle 不知道特定表是由您在命令行上创建的,还是由您告诉使用此模式的 APEX 应用程序创建的。如果您感兴趣的表遵循特定的命名约定,则可以将其用作过滤器。或者您可以将它们放在不同的架构中。
  • @TimBiegeleisen:- 有没有办法通过查询避免这些表..?
  • 这些表是否都属于同一个表空间?
  • @Spidey:表空间怎么可能重要?

标签: oracle oracle11g oracle10g oracle-xe


【解决方案1】:

这些表可能是在任何与 Oracle APEX 相关的安装期间创建的。您可以使用以下步骤摆脱它们。

  1. SELECT * FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = 'your_user' ORDER BY created;

  2. 由于这些表是通过应用程序安装的,因此它们最 可能已安装在一个小而连贯的时间窗口中。什么 我的意思是,它们可能已在一段时间内安装 帧30分钟,1小时左右。因此,如果您按创建时间排序, 它们都将聚集到上述查询输出中的连续行。

  3. 确定它们开始的时间范围和 完成安装这些表。再次将上述查询写入 过滤掉那个时间范围。然后,您应该只得到您的 表格。

【讨论】:

  • 有什么问题?他们不是在一个统一的时间范围内吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-18
  • 2015-05-13
  • 2014-08-13
  • 1970-01-01
  • 2015-09-25
相关资源
最近更新 更多