Introdução às Substitution Variables no Oracle SQL Plus
Quando se trata de criar scripts dinâmicos no Oracle SQL Plus, as Substitution Variables são uma verdadeira mão na roda. Elas permitem que você personalize a execução de um script sem precisar editar seu código toda vez que quiser mudar algo. Vamos mergulhar nesse tema e aprender o básico com exemplos práticos.
O que são Substitution Variables?
Imagine que você tem um formulário onde pode preencher espaços em branco antes de enviar. As Substitution Variables funcionam exatamente assim: são marcadores que esperam ser substituídos por valores fornecidos na hora de executar o script.
Tipos de Substitution Variables
- Ampersand Simples (‘&’)
Solicita um valor toda vez que encontra a variável no script. - Ampersand Duplo (‘&&’)
Solicita o valor uma única vez e o armazena para reutilizações futuras no mesmo script.
Uso do Ampersand Simples (&)
O ‘&’ é ideal para situações em que o valor pode variar a cada execução. Veja este exemplo:
SELECT &coluna, SALARY
FROM EMP_DETAILS_VIEW
WHERE SALARY > 12000;
Ao executar o comando com &coluna, o SQL Plus pediu para você fornecer um valor para a variável coluna. Você inseriu JOB_ID, e o SQL Plus prontamente substituiu &coluna pelo valor fornecido. O resultado? Um comando que agora é perfeitamente legível pelo banco de dados:
É como preencher um campo em branco de um formulário: você diz “quero o JOB_ID”, e o SQL Plus diz: “Entendido, é isso que vou buscar para você!”
Ele não só executou o comando, mas também mostrou as etapas: a versão antiga do comando com &coluna e a versão nova com JOB_ID. Por fim, ele retornou os resultados filtrados, listando os IDs de trabalho e salários acima de 12.000.
Toda vez que o script for executado, o SQL Plus perguntará qual valor você quer usar para &coluna.
Limitações e Restrições
Apesar de úteis, as Substitution Variables têm algumas limitações que você deve considerar:
- Primeiro Token: Não podem ser usadas como o primeiro elemento de um comando SQL.
— Errado:
&&coluna SELECT SALARY FROM EMP_DETAILS_VIEW;
- Edição de Buffer: Não são reconhecidas em comandos de edição como APPEND, CHANGE ou INPUT.
- Expansão Recursiva: Se o valor de uma variável contiver outro ampersand, ele será tratado como texto literal, não como outra substituição.
Resumo
Neste artigo, exploramos o conceito de Substitution Variables e o uso básico do ampersand simples (‘&’). Ele é como um colega que pede instruções toda vez que precisa fazer algo, garantindo flexibilidade em cada execução.
No próximo artigo, vamos nos aprofundar no ampersand duplo (‘&&’), suas diferenças em relação ao ‘&’, e as limitações dessas ferramentas poderosas.