Retorno do Select em um Bloco Anônimo

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Pessoal,

estou alterando um select e para testa-lo, coloquei ele em um bloco anônimo, nesse select tem algumas variáveis que são setadas através de funções. A parte que preciso alterar, é o "and" que comentei abaixo que tem várias validações com as variáveis !!! Da forma que o bloco anonimo está, ele dá erro que estava esperando o "into" entre o select e o from... Mas eu preciso ver os resultados do select da forma original e depois comparar o resultado, depois da minha alteração.

Qual a forma que vocês fariam para visualizar o resultado ???

Bom, resumidamente, bem reduzido *rs*, o meu bloco está mais ou menos assim:

Selecionar tudo


declare

  variavel_01 varchar2(15);
  variavel_02 varchar2(15);
  variavel_03 varchar2(15);
  variavel_04 varchar2(15);
  variavel_05 varchar2(15);

begin
  
	variavel_01 := substr(package.fnc_funcao_01(p_parametro_01 => 'XPTO',
						    p_parametro_02 => 'XPTO'), 1, 5);
											 
	variavel_02 := substr(package.fnc_funcao_02(p_parametro_01 => 'XPTO',
						   p_parametro_02 => 'XPTO'), 1, 5);
											   
	variavel_03 := substr(package.fnc_funcao_03(p_parametro_01 => 'XPTO',
						   p_parametro_02 => 'XPTO'), 1, 5);

	variavel_04 := substr(package.fnc_funcao_04(p_parametro_01 => 'XPTO',
						   p_parametro_02 => 'XPTO'), 1, 5);

	variavel_05 := substr(package.fnc_funcao_05(p_parametro_01 => 'XPTO',
						   p_parametro_02 => 'XPTO'), 1, 5);
  
  select tb02.campo01,
         tb02.campo02,
         tb01.campo01,
         tb01.campo02,
         tb02.campo03,
         to_date(tb02.campo04, 'YYYY-MM-DD') campo04,
         tb01.campo03,
         tb01.campo04,
         tb04.campo01,
         decode(tb02.campo03, 3, 1, tb04.campo02) campo02,
         sum(tb04.campo03) campo03
  from tb_tabela_01 tb01,
       tb_tabela_02 tb02,
       tb_tabela_03 tb03,
       tb_tabela_04 tb04
  where tb01.campo01 = tb02.campo01
  and tb03.campo04 = tb01.campo04
  and tb04.campo04 = tb03.campo04
  and tb01.campo05 = 0
  and (
		/* Aqui vem várias validações com as variaveis 
		   variavel_01, variavel_02, variavel_03, variavel_04, variavel_05 e etc */
		)
  group by tb02.campo01,
           tb02.campo02,
           tb01.campo01,
           tb01.campo02,
           tb02.campo03,
           to_date(tb02.campo04, 'YYYY-MM-DD'),
           tb01.campo03,
           tb01.campo04,
           tb04.campo01,
           decode(tb02.campo03, 3, 1, tb04.campo02)
  order by tb02.campo03,
           tb01.campo01,
           tb01.campo02,
           to_date(tb02.campo04, 'YYYY-MM-DD');
end;

Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Dentro de um bloco PLSQL você precisa ter a cláusula INTO.
Pra executar sem, só se for direto no SQL*Plus ou SQL Developer.

No seu caso, imagino que sua query vai retornar várias linhas. Neste caso coloque ela num CURSOR e imprima linha por linha.
OU, insira isso em alguma tabela que você pode conferir. INSERT INTO outra_tabelas (SELECT etc....

Não vejo outra saída.
Avatar do usuário
tiago_pimenta
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 213
Registrado em: Qua, 29 Jun 2011 9:49 am
Localização: Barretos / SP

Show man... Muito obrigado pela resposta... Realmente não via outra saída, mas quis perguntar, por que, vai que alguém tivesse outra saída !!!

Obrigado

[ ]s
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes