如何在数据库中所有模式的所有表中显示所有列(及其类型)?

时间:2018-04-20 14:03:18

标签: sql oracle-sqldeveloper

假设您有一个数据库,其中包含'n'个模式,每个模式都有一个'n'个表。每个都包含'n'个列。 如何打印所有这些数据以及列中使用的数据类型。我需要制作一个综合列表以供参考,我真的不想单独描述每个表。 我已经使用过的:

    SELECT DISTINCT OWNER, OBJECT_NAME FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'TABLE' AND OWNER = '*Schema_Name*';

然后

SELECT utc.TABLE_NAME ,
   utc.COLUMN_NAME ,
   utc.DATA_TYPE
   FROM  USER_TAB_COLUMNS utc
   WHERE utc.TABLE_NAME ='*Table Name*'; 

然而,考虑到我必须处理的数据量,这会减少工作量,但仍然令人厌烦。

2 个答案:

答案 0 :(得分:1)

考虑创建数据模型。您标记了SQL Developer,因此我认为该解决方案可用。

你说'ALL SCHEMAS',但我假设你的意思是所有的应用程序模式,而不是用户或oracle内部的。

拥有模型后,您可以选择图表,html,pdf和Excel进行显示。

您只需将模式反向工程到模型,然后发布。

How to RE an existing schema or schemas

enter image description here

对于大量的物体 - 数以千计,您需要将jvm的内存量增加到3 GB左右,以获得最佳体验。

enter image description here

答案 1 :(得分:0)

为此,您需要DBA Access或至少选择查询所需的模式和表格。

select owner,table_name,column_name,data_type from dba_tab_cols order by owner;

是一个查询,它将为您提供所有模式以及所有表及其列和数据类型。如果要自定义查询以适合任何模式或表的数据。