我在一个项目中,需要我查询数据库并临时生成 使用用户指定的列进行报告。
当我在另一个数据库上使用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中提到的查询那样的此类查询,可以帮助我从数据库中找到所需的内容?
答案 0 :(得分:2)
欢迎使用Oracle!
自从标记了SQL Developer之后,我将向您展示如何在其中做您想做的事情。
但是首先,您感兴趣的观点:
但是,要使用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 Docs)
您会注意到,既有DBA_TAB_COLUMNS,也有ALL_TAB_COLUMNS。只有“超级用户”才能查询DBA_视图。任何人都可以查看ALL_视图,但是您只能看到数据库特权授予访问权限的对象。
还有USER_视图-它们仅显示您作为登录用户所需要的关于架构的知识。在Oracle中,架构和用户基本上是同一件事。
因此,尝试报告,回答您的问题。检查我们正在使用的SQL,学习数据字典。
您还可以使用我们的Search Feature-它是用于在数据库中查找内容的。
祝您在Oracle旅途中一切顺利!