Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ist es möglich, über Bind-Variablen in Oracle auf Spaltennamen zu verweisen?

Nein. Sie können keine Bind-Variablen für Tabellen- oder Spaltennamen verwenden.

Diese Informationen werden benötigt, um den Ausführungsplan zu erstellen. Ohne zu wissen, wonach Sie sortieren möchten, wäre es beispielsweise unmöglich herauszufinden, welcher Index verwendet werden soll.

Anstatt Variablen zu binden, müssen Sie den Spaltennamen direkt in die SQL-Anweisung interpolieren, wenn Ihr Programm ihn erstellt. Vorausgesetzt, Sie treffen Vorkehrungen gegen SQL-Injection, hat das keine Nachteile.

Aktualisierung: Wenn Sie wirklich durch Reifen springen wollten, könnten Sie wahrscheinlich so etwas tun wie

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

aber das ist einfach albern. Und langsam. Nicht.