sql >> Base de Datos >  >> RDS >> Oracle

pasar el nombre de la tabla y la columna dinámicamente usando variables de enlace

Los nombres de tablas y columnas no se pueden pasar como variables de vinculación, no. El punto central de las variables de enlace es que Oracle puede generar un plan de consulta una vez para la declaración y luego ejecutarlo muchas veces con diferentes valores de variables de enlace. Si el optimizador no sabe a qué tabla se accede o qué columnas se seleccionan y filtran, no puede generar un plan de consulta.

Si su preocupación se relaciona con los ataques de inyección SQL, y suponiendo que SQL dinámico sea realmente necesario (la mayoría de las veces, la necesidad de recurrir a SQL dinámico implica problemas con el modelo de datos), puede usar el DBMS_ASSERT paquete para validar que los nombres de las tablas y las columnas no contienen SQL incrustado.