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

Er det muligt at henvise til kolonnenavne via bindevariabler i Oracle?

Nej. Du kan ikke bruge bindevariabler til tabel- eller kolonnenavne.

Disse oplysninger er nødvendige for at oprette udførelsesplanen. Uden at vide, hvad du vil bestille efter, ville det f.eks. være umuligt at finde ud af, hvilket indeks du skal bruge.

I stedet for bindevariabler skal du direkte interpolere kolonnenavnet i SQL-sætningen, når dit program opretter det. Forudsat at du tager forholdsregler mod SQL-injektion, er der ingen ulempe ved det.

Opdatering: Hvis du virkelig ville springe gennem bøjler, kunne du sikkert gøre sådan noget som

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

men det er bare dumt. Og langsomt. Lad være.



  1. Adgang til en anden brugers tabel i en Oracle Stored Procedure

  2. Brug DB_ID() til at returnere id'et for en database i SQL Server

  3. SQL Server datoformat funktion

  4. Start af blogging til HTML5 og CSS3