Sie können dynamische Ausdrücke nicht direkt als Eingabe zur Pivot-Tabelle hinzufügen. Sie können so etwas versuchen, bei dem wir alle Spalten der Tabelle in einer Variablen über einen PL/SQL-Block abrufen und sie dann so übergeben, wie es von Oracle erwartet wird Pivot-Tabellen-Funktionalität.
SET serveroutput ON;
DECLARE
sqlquery VARCHAR(32767);
cols VARCHAR2(32767);
BEGIN
SELECT listagg('''' || column_name || '''', ',') within
GROUP(
ORDER BY column_name)
INTO cols
FROM
(SELECT DISTINCT column_name
FROM all_tab_columns
WHERE TABLE_NAME = 'TABLE_NAME')
;
sqlquery := '
SELECT * FROM
(
SELECT table_name, column_name
FROM ALL_TAB_COLUMNS
WHERE
table_name = ''TABLE_NAME''
)
PIVOT
(
MIN(column_name)
FOR column_name IN (
''||cols||''
)
)
ORDER BY table_name';
DBMS_OUTPUT.PUT_LINE(sqlquery);
EXECUTE IMMEDIATE sqlquery;
END;
/