在一个语句中列出表和列

时间:2014-12-03 21:32:16

标签: sql oracle

您将如何在oracle SQL中打印每个表的名称以及该表中的列 - 通过打印表名一次,然后在该表中的每一列上单独行。

格式应该是这样的:

Table1
  columns
Table2
  Columns

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题。

    DECLARE 
TNAME user_tables.table_name%TYPE;
CNAME user_tab_columns.column_name%TYPE;
CURSOR ct1
IS SELECT table_name from user_tables;
CURSOR ct2 IS SELECT column_name FROM user_tab_columns WHERE table_name =TNAME;
BEGIN
OPEN ct1;
LOOP
FETCH ct1 INTO TNAME;
EXIT WHEN ct1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('TABLENAME:-->'|| TRIM(TNAME));
      OPEN ct2;
      LOOP
      FETCH ct2 INTO CNAME;
      EXIT WHEN ct2%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE('             '|| TRIM(CNAME));
      END LOOP;
      CLOSE CT2;
END LOOP;
CLOSE ct1;
END;