首页 > 解决方案 > 使用 SQL Developer 探索 Oracle 数据库

问题描述

我在一个项目中,该项目需要我查询数据库并使用用户指定的列生成临时报告。

当我在一个不同的数据库上使用 DB2 时,几乎没有关于可用表和列的文档,我还可以使用下面提到的查询来获得我正在寻找的内容

select * from syscat.procedures where procschema like 'ABCD' and text like '%your text%';
select * from syscat.columns where tabschema like 'ABCD' and colname like '%yourtext%';

在我的新项目中,我将在不同的数据库上使用 Oracle,这次我没有文档可以告诉我哪一列中有哪些信息。此外,这个项目中没有人可以帮助我。

Oracle 中有没有像我上面提到的 DB2 那样的查询,可以帮助我从数据库中找到我需要的东西?

标签: sqloracle-sqldeveloper

解决方案


欢迎来到甲骨文!

既然您标记了 SQL Developer,我将向您展示如何在那里做您想做的事情。

但首先,您感兴趣的观点:

  • ALL_TAB_COLUMNS
  • ALL_SOURCE

但是,要使用 GUI 搜索这些视图...

您可以使用报告来了解我们的数据字典。

在此处输入图像描述

您可以采用几种不同的方式,但这里有一个示例,列报告。

在此处输入图像描述

在浏览时,您可以观察日志部分中的语句面板。所以你可以看到我们正在查询

在此处输入图像描述

通过查看为此报告运行的查询,您可以看到我们正在访问以下数据字典视图:

SQL的片段:

      owner         sdev_link_owner,
       table_name    sdev_link_name,
       'TABLE' sdev_link_type
   from sys.dba_tab_columns
  where (:owner is null
     or instr(
     owner,

DBA_TAB_COLUMNS(Oracle 文档

您会注意到有一个 DBA_TAB_COLUMNS 和一个 ALL_TAB_COLUMNS。只有“超级用户”可以查询 DBA_ 视图。任何人都可以查看 ALL_ 视图,但您只能查看您的数据库权限授予访问权限的对象。

还有 USER_ 视图 - 它们仅显示您需要了解的有关您登录用户的架构的信息。在 Oracle 中,模式和用户基本上是一回事。

所以,试试报告,回答你的问题。检查我们正在使用的 SQL,学习数据字典。

您还可以使用我们的搜索功能- 它专为在数据库中查找内容而设计。

祝您的 Oracle 之旅好运!


推荐阅读