SELECT DENTRO DO CURSOR
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:
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.
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
Curtidas 0
Respostas
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;
-- 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
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?
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
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?
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