如何在oracle中获取所有表名及其列名?

时间:2017-07-18 21:37:36

标签: oracle oracle11g

如何在oracle中获取所有表名及其列名?应首先打印表名,然后是所有列名,然后是下一个表及其列,依此类推。

3 个答案:

答案 0 :(得分:0)

如果你是dba,你可以看到DB中的所有表格;

select * from all_tab_columns
order by table_name;

答案 1 :(得分:0)

下面的查询位于中间列(str)中,其数据与您请求的方式相同。但是,如果没有第一列和/或最后一列中的信息,则不清楚如何知道哪些值是表名,哪些是其下的列。

将表名放在一列(对每个列重复),然后是列名,然后是顺序,会更有意义。这只是union all操作的第二个成员。

下面的查询适用于架构中的表。如果要对您有权访问的所有表执行此操作,请使用all_tablesall_tab_columns;如果您拥有DBA权限,请使用dba_tablesdba_tab_columns(但在这些情况下,您是否需要了解架构/所有者,而不仅仅是表名?)

select table_name as tbl, table_name as str, 0 as ord from user_tables
union all
select table_name, column_name, column_id from user_tab_columns
order by tbl, ord
;

答案 2 :(得分:0)

SELECT table_name, column_name
FROM all_tab_cols
order by table_name, column_name