如何在oracle中获取所有表名及其列名?应首先打印表名,然后是所有列名,然后是下一个表及其列,依此类推。
答案 0 :(得分:0)
如果你是dba,你可以看到DB中的所有表格;
select * from all_tab_columns
order by table_name;
答案 1 :(得分:0)
下面的查询位于中间列(str
)中,其数据与您请求的方式相同。但是,如果没有第一列和/或最后一列中的信息,则不清楚如何知道哪些值是表名,哪些是其下的列。
将表名放在一列(对每个列重复),然后是列名,然后是顺序,会更有意义。这只是union all
操作的第二个成员。
下面的查询适用于架构中的表。如果要对您有权访问的所有表执行此操作,请使用all_tables
和all_tab_columns
;如果您拥有DBA权限,请使用dba_tables
和dba_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