Oracle
 sql >> Base de données >  >> RDS >> Oracle

transmission dynamique du nom de la table et de la colonne à l'aide de variables de liaison

Les noms de table et de colonne ne peuvent pas être passés en tant que variables de liaison, non. L'intérêt des variables de liaison est qu'Oracle peut générer un plan de requête une fois pour l'instruction, puis l'exécuter plusieurs fois avec différentes valeurs de variable de liaison. Si l'optimiseur ne sait pas quelle table est consultée ou quelles colonnes sont sélectionnées et filtrées, il ne peut pas générer de plan de requête.

Si votre souci concerne les attaques par injection SQL, et en supposant que le SQL dynamique est réellement nécessaire (la plupart du temps, la nécessité de recourir au SQL dynamique implique des problèmes avec le modèle de données), vous pouvez utiliser le DBMS_ASSERT package pour valider que les noms de table et les noms de colonne ne contiennent pas Embedded SQL.