Oracle
 sql >> Base de données >  >> RDS >> Oracle

Est-il possible de faire référence aux noms de colonnes via des variables de liaison dans Oracle ?

Non. Vous ne pouvez pas utiliser de variables de liaison pour les noms de table ou de colonne.

Ces informations sont nécessaires pour créer le plan d'exécution. Sans savoir par quoi vous voulez ordonner, il serait impossible de déterminer quel index utiliser, par exemple.

Au lieu de variables liées, vous devez directement interpoler le nom de la colonne dans l'instruction SQL lorsque votre programme la crée. En supposant que vous preniez des précautions contre l'injection SQL, il n'y a aucun inconvénient à cela.

Mise à jour : Si vous vouliez vraiment sauter à travers des cerceaux, vous pourriez probablement faire quelque chose comme

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

mais c'est tout bête. Et lent. Non.