Kürzlich bin ich auf eine Orakeltabelle mit 50 Spalten gestoßen, und ich muss jede Spalte für die jeweilige Zeile analysieren. Es war schwierig, diese 50 Spalten in den Zeilen anzuzeigen, also habe ich den folgenden PLSQL-Block erstellt, um die Zeilen in Spalten umzuwandeln. Dies nimmt den Tabellennamen als Eingabe und gibt eine Zeile im Spaltenformat aus
set serveroutput on declare colname varchar2(100); sql_str VARCHAR2(200); col_value varchar(100); --------- !!!! Carefully change this select state ment !!! -------------- cursor cur2 is select COLUMN_NAME from dba_tab_columns where TABLE_NAME='&1'; begin for rec1 in cur2 loop colname :=rec1.COLUMN_NAME; sql_str:='select '|| colname ||' from apps.&&1 where rownum< 2'; EXECUTE IMMEDIATE sql_str into col_value; dbms_output.put_line ( colname ||':'||col_value ); end loop; end; /