Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So konvertieren Sie Zeilen in Spalten in einer Oracle-Tabelle

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;
/