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

È possibile fare riferimento ai nomi delle colonne tramite le variabili di collegamento in Oracle?

No. Non puoi utilizzare le variabili di collegamento per i nomi di tabelle o colonne.

Queste informazioni sono necessarie per creare il piano di esecuzione. Senza sapere per cosa si desidera ordinare, sarebbe impossibile capire quale indice utilizzare, ad esempio.

Invece di vincolare le variabili, devi interpolare direttamente il nome della colonna nell'istruzione SQL quando il tuo programma la crea. Supponendo che tu prenda precauzioni contro l'iniezione di SQL, non c'è alcun aspetto negativo in questo.

Aggiornamento: Se volessi davvero fare i salti mortali, probabilmente potresti fare qualcosa come

order by decode(?, 'colA', colA, 'colB', colB)

ma è semplicemente stupido. E lento. Non farlo.