SELECT DENTRO DO CURSOR

Oracle

06/01/2009

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

Curtidas 0

Respostas

Jair Bg

Jair Bg

06/01/2009

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;


GOSTEI 0
Leonardo.r.aguiar

Leonardo.r.aguiar

06/01/2009

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?


GOSTEI 0
Rodolpho123

Rodolpho123

06/01/2009

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?


GOSTEI 0
POSTAR