Declarar variável simples e utilizar em consulta (Select) Oracle

09/11/2017

0

Pessoal, estou acostumado com o SQL onde eu posso simplesmente dar um "DECLARE @VAR1 INT SET @VAR1 = 10" e começar a utilizar..
No oracle nao estou tendo a mesma facilidade, eu precisava fazer isso com uma variável mas não deu certo, alguém saberia me dizer onde estou errando?

Lembrando que eu queria simplesmente atribuir o valor 10 à variável, não tenho como dar um "SELECT INTO" nela por que não tenho essa informação no banco de dados.

DECLARE
V_MES OUT NUMBER;
V_MES :=10;

BEGIN
Select SUM(Valor) From Pffinanc
Where CODCOLIGADA = V_MES and CODEVENTO in ('5611')
AND VALOR>0 And MESCOMP = 10 and ANOCOMP = 2017 and chapa in (select chapa from pfunc where codcoligada= 6 )

END

Abraços!
Lailson Junior

Lailson Junior

Responder

Posts

09/11/2017

Roberto Spernega

Boa tarde,

montando um bloco ficaria mais ou menos assim

set serverout on size 1000000

DECLARE
--
V_MES NUMBER := 10;
v_valor number;
BEGIN
Select SUM(Valor) into v_valor
From Pffinanc
Where CODCOLIGADA = V_MES and CODEVENTO in ('5611')
AND VALOR>0
And MESCOMP = 10
and ANOCOMP = 2017
and chapa in (select chapa from pfunc where codcoligada= 6 );
--
dbms_output.put_line('Valor '||to_char(v_valor));
--
END;
/


ou um select direto

variable v_mes number
exec :v_mes := 10

Select SUM(Valor)
From Pffinanc
Where CODCOLIGADA = :V_MES and CODEVENTO in ('5611')
AND VALOR>0
And MESCOMP = 10
and ANOCOMP = 2017
and chapa in (select chapa from pfunc where codcoligada= 6 );


Não testado...
Responder

09/11/2017

Lailson Junior

A segunda opção me pareceu mais dentro do que eu precisava, mas ainda sim deu erro... :(
Responder

10/11/2017

Roberto Spernega

Bom dia flash,

Aparentemente o Select que você postou estava com a variável na posição errada.


variable v_mes number
exec :v_mes := 10

Select SUM(Valor)
From Pffinanc
Where CODCOLIGADA = 6
and CODEVENTO in ('5611')
AND VALOR>0
And MESCOMP = :V_MES
and ANOCOMP = 2017
and chapa in (select chapa from pfunc where codcoligada= 6 );

tenta desse jeito, de ainda der erro, posta o erro.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar