いいえ。テーブル名または列名にバインド変数を使用することはできません。
この情報は、実行プランを作成するために必要です。たとえば、何を注文するかがわからないと、使用するインデックスを特定することはできません。
変数をバインドする代わりに、プログラムが列名を作成するときに、列名をSQLステートメントに直接補間する必要があります。 SQLインジェクションに対して予防策を講じていると仮定すると、それにはマイナス面はありません。
更新: 本当にフープを飛び越えたいのなら、おそらく次のようなことをすることができます
order by decode(?, 'colA', colA, 'colB', colB)
しかし、それはばかげています。そして遅い。しないでください。