sql >> Database >  >> RDS >> Oracle

Is het mogelijk om naar kolomnamen te verwijzen via bindvariabelen in Oracle?

Nee. U kunt geen bindvariabelen gebruiken voor tabel- of kolomnamen.

Deze informatie is nodig om het uitvoeringsplan op te stellen. Zonder te weten waarop u wilt bestellen, zou het bijvoorbeeld onmogelijk zijn om erachter te komen welke index u moet gebruiken.

In plaats van variabelen te binden, moet u de kolomnaam direct in de SQL-instructie interpoleren wanneer uw programma deze maakt. Ervan uitgaande dat u voorzorgsmaatregelen neemt tegen SQL-injectie, is daar geen nadeel aan.

Bijwerken: Als je echt door hoepels wilt springen, kun je waarschijnlijk zoiets doen als

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

maar dat is gewoon dom. En langzaam. Niet doen.



  1. Hoe maak en bevraag ik gekoppelde databaseservers in SQL Server?

  2. SQL MAX van meerdere kolommen?

  3. Oracle JDeveloper 12c gebruiken met Oracle Database, deel 1

  4. SQL SERVER - Truc - SSMS uitvoeren met een ander Windows-account