Variáveis em scripts do SAPO
Pergunta
Eu tenho um script SQL que está sendo executado em SAPO.Atualmente, eu tê-lo colocado com apenas instrução após a instrução, assim:
select such-and-such from somewhere;
delete other-thing from somewhere-else;
E assim por diante.Algumas das cláusulas where acabar sendo repetitivo, porque eu tenho complexo interior de consultas para obter particular, IDs de funcionar.Eu gostaria de capturar a IDENTIFICAÇÃO no início do script em uma variável e, em seguida, usar essa variável no subsequentes cláusulas where.Então, algo como isto:
variable MY_ID = select the-ID from somewhere;
select such-and-such from somewhere where ID = @MY_ID;
Obviamente, eu estou fazendo que a sintaxe, mas que é o que eu estou procurando.Mas eu não tenho certeza se isso é possível em um SAPO script.Eu sei que pode converter a coisa toda para um PL/SQL bloco, mas estou tentando evitar ter que fazer isso por várias razões.
Qualquer maneira de fazer isso usando o SAPO sem necessitar de converter para um PL/SQL bloco?
Solução
Eu acho que isso vai realizar o que você quer. Você pode declarar uma variável de ligação, inserir um valor nela e depois usá -lo em instruções futuras.
variable l_var varchar2(1);
begin
select dummy
into :l_var
from dual;
end;
select *
from dual
where dummy = :l_var;
Outras dicas
Eu uso o SQL*PLUS substituição de variáveis.Eles são suportados pelo SAPO.Você pode executar este código, pressionando F5.
COLUMN VAR NEW_VALUE VAR_VALUE
SELECT 'SOMETHING' VAR FROM DUAL; --this sets 'VAR_VALUE' = 'SOMETHING'
SELECT '&VAR_VALUE' FROM DUAL; --this uses the value set by the previous stmt.
Eu não uso mais o sapo ativamente, mas deve haver algum mecanismo para definir valores para os parâmetros de ligação, ou seja, select such-and-such from somewhere where ID = :myid;
de modo que toda vez que ocorre o Toad fornece o mesmo valor para esse parâmetro.
Como alternativa, você pode criar um valor de contexto de sessão ou variável de pacote PL/SQL (Nota: não é a mesma coisa que reescrever todo o seu código para usar o PL/SQL). Ver essa questão
O recurso "Campos calculados" no Toad é realmente bastante poderoso se usado da maneira certa. Não é nada mais do que um editor de scripts "token" que se liga à própria consulta. Ele está disponível apenas através do Editor de Design de Query, e não do editor nativo, que permite escrever SQL diretamente.
Como dica, da próxima vez que você criar uma consulta projetada no sapo e precisa criar complexos onde ou sub-inter-questões, experimente o recurso "Campos calculados" e use a opção Forms para anexar basicamente suas condições a uma determinada coluna ou consulta. Você ficará surpreso com o quão poderoso é. E ajuda a manter sua consulta SQL em um bom formato legível.