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.