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

overføre tabel- og kolonnenavn dynamisk ved hjælp af bindevariabler

Tabel- og kolonnenavne kan ikke videregives som bindevariabler, nej. Hele pointen med bindevariabler er, at Oracle kan generere en forespørgselsplan én gang for sætningen og derefter udføre den mange gange med forskellige bindevariableværdier. Hvis optimeringsværktøjet ikke ved, hvilken tabel der tilgås, eller hvilke kolonner der vælges og filtreres på, kan den ikke generere en forespørgselsplan.

Hvis din bekymring er relateret til SQL-injektionsangreb og antager, at dynamisk SQL faktisk er nødvendig (det meste af tiden indebærer behovet for at ty til dynamisk SQL problemer med datamodellen), kan du bruge DBMS_ASSERT pakke for at validere, at tabelnavne og kolonnenavne ikke indeholder indlejret SQL.



  1. Hvad er den ideelle datatype at bruge, når du gemmer breddegrad/længdegrad i en MySQL-database?

  2. Fjernelse af foranstillede nuller fra varchar sql developer

  3. Sådan slipper du hurtigt en bruger med eksisterende privilegier

  4. Databasedesign til flersprogede applikationer