SELECT DENTRO DO CURSOR

06/01/2009

0

Olá pessoal, preciso da ajuda de vcs pq não consigo fazer um select dentro do meu cursor, nao sei muito de oracle, mas tentei fazer da seguinte maneira:

DECLARE
sNFs Varchar2(1000);
sNF EXP_NOTAS_FISCAIS.NTF_NUMERO¬type;
Cursor cNFMaster is
  select
    distinct NTF_NUMERO
  from EXP_NOTAS_FISCAIS
  where NTF_FAT_NUMERO = 01021040059
  order by NTF_NUMERO;
BEGIN
  open cNFMaster;
  sNFs := ´´;
  loop
    fetch cNFMaster into sNF;
    exit when cNFMaster¬notfound;
    if length(sNFs) > 1 then
      sNFs := sNFs || ´,´;
    end if;
    sNFs := sNFs || sNF;
  end loop;
  DBMS_OUTPUT.put_line(sNFs);
  -- É AQUI QUE QUERO FAZER O MEU SELECT.
  select sNFs; -- Não funciona
  select sNFs from dual; -- Não funciona
  print sNFs; -- Não funciona
  close cNFMaster;
 END;


Não sei se isso que quero fazer é possivel, ou o ideal, mas não consegui pensar em outra maneira de fazer isso.

Por favor me ajudem.

Obrigado.


Leonardo.r.aguiar

Leonardo.r.aguiar

Responder

Posts

06/01/2009

Jair Bg

Boa Tarde, veja alguns passos...
-- Isso aqui não funciona...
-- É AQUI QUE QUERO FAZER O MEU SELECT.
select sNFs; -- Não funciona
select sNFs from dual; -- Não funciona
-- voce quer visualizar?
print sNFs; -- Não funciona
--use este...
DBMS_OUTPUT.PUT_LINE(´Notas Fiscais: ´ || sNFs);
close cNFMaster;
-- Se for uma função de cursor explícito o retorno será...
return (sNFs);
END;


Responder

06/01/2009

Leonardo.r.aguiar

Primeiramente muito obrigado, principalmente pela rapidez em me responder, mas não é exatamente isso o que quero fazer (eu acho).

Eu vou usar esse código no Oracle Reports para preencher um campo, por isso eu preciso fazer um select, não sei se usar o dbms_output.put_line() vai resolver meu problema (se vcs souberem, por favor me contem).

Estou fazendo esse codigo para concatenar varias linhas de uma pesquisa (SELECT) em apenas uma linha, com os resultados separados por virgula. É esse resultado que eu preciso mostrar no meu relatório do Oracle Reports, por isso queria fazer um select no trecho demonstrado na solicitação.

Vocês podem me ajudar, por favor?


Responder

06/01/2009

Rodolpho123

leonardo.r.aguiar

A package DBMS_OUTPUT contém diversas funções para sáida de texto no console. a função PUTLINE dá um display no console com o texto passado no seu parâmetro. Nunca trabalhei com Oracle Reports por isso não posso dizer se usar PUTLINE vai funcionar neste cason com Oracle Reports. Vc precisa realmente usar este recurso em um bloco PL/SQL anônimo? Prq vc não cria efetivamente uma função no seu DB para lhe retornar essas string concatenada?


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

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