Oracle
 sql >> Database >  >> RDS >> Oracle

Come chiamare una funzione con il parametro Rowtype da un'istruzione select in Oracle

Non puoi farlo con %ROWTYPE. %ROWTYPE è in realtà un tipo di record PL/SQL, che non è un tipo legale in SQL, quindi non puoi usarlo in un SELECT. Dovresti creare un tipo di oggetto che abbia le stesse colonne della tabella, passare alla funzione per aspettarti quel tipo di oggetto invece di %ROWTYPE, e quindi puoi scrivere qualcosa del genere:

SELECT function(table1_typ(column1, column2, column3))
  FROM table1 t1

Svantaggi:devi ancora digitare tutte le colonne in SELECT e, se cambi la tabella, dovrai cambiare anche il tipo di oggetto e SELECT.