Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

passando o nome da tabela e da coluna dinamicamente usando variáveis ​​de ligação


Os nomes de tabela e coluna não podem ser passados ​​como variáveis ​​de ligação, não. O ponto principal das variáveis ​​de ligação é que o Oracle pode gerar um plano de consulta uma vez para a instrução e executá-lo várias vezes com diferentes valores de variáveis ​​de ligação. Se o otimizador não souber qual tabela está sendo acessada ou quais colunas estão sendo selecionadas e filtradas, ele não poderá gerar um plano de consulta.

Se sua preocupação é com ataques de injeção de SQL, e assumindo que SQL dinâmico é realmente necessário (na maioria das vezes, a necessidade de recorrer a SQL dinâmico implica em problemas com o modelo de dados), você pode usar o DBMS_ASSERT pacote para validar que os nomes de tabela e de coluna não contêm SQL incorporado.