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

É possível fazer referência a nomes de colunas por meio de variáveis ​​de ligação no Oracle?


Não. Você não pode usar variáveis ​​de ligação para nomes de tabelas ou colunas.

Essas informações são necessárias para criar o plano de execução. Sem saber o que você deseja ordenar, seria impossível descobrir qual índice usar, por exemplo.

Em vez de variáveis ​​de ligação, você precisa interpolar diretamente o nome da coluna na instrução SQL quando seu programa a cria. Supondo que você tome precauções contra injeção de SQL, não há desvantagem nisso.

Atualização: Se você realmente quisesse pular obstáculos, provavelmente poderia fazer algo como
order by decode(?, 'colA', colA, 'colB', colB)

mas isso é simplesmente bobo. E lento. Não.