Non puoi creare un %ROWTYPE
variabile per una tabella sconosciuta e non puoi fare riferimento staticamente ai nomi delle colonne se non conosci il nome della tabella in fase di compilazione.
È possibile utilizzare il pacchetto dbms_sql per gestire istruzioni SQL completamente dinamiche. Dovrai preparare l'istruzione SQL, descrivere le colonne per scoprire il numero di colonne e i relativi tipi di dati, associare le variabili appropriate e quindi recuperare i dati. È un modo molto più ingombrante di scrivere codice rispetto all'esempio che hai pubblicato, ma ti offre un'estrema flessibilità.
Ci sono una serie di esempi di utilizzo del pacchetto dbms_sql nella documentazione a cui ho collegato. Potresti anche voler controllare la funzione dump_csv di Tom Kyte che scrive il risultato di una query arbitraria in un file CSV usando UTL_FILE
. Se vuoi davvero scrivere i dati in DBMS_OUTPUT
, puoi semplicemente sostituire UTL_FILE
chiamate con DBMS_OUTPUT
. Ma sono abbastanza sicuro che tu voglia fare qualcosa di più utile che scrivere semplicemente i dati nel DBMS_OUTPUT
buffer quindi la procedura di Tom è probabilmente più vicina a ciò che stai veramente cercando di ottenere.