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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top