Olá pessoal, preciso da ajuda de vocês porque não consigo fazer um select dentro do meu cursor, não 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.
Caso esteja em alguma ferramenta visual e, esteja habilitado o OUTPUT (No Sql*Plus digite: SET SERVEROUTPUT ON;), utilize o DBMS_OUTPUT, no lugar do teu print:
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 vocês 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.
A situação é: Do forms, chamar um Reports com essa variável?
Pelo que vi, já a concatenou com vírgula. A questão então, nessa tua procedure que vai criar, (ou função), retornar essa variável (sNFS) e, utilizá-la numa string, na chamada do teu report.
Se for esse o caso, dá um alô que devem ter n Exemplos aqui no fórum.
É isso mesmo Trevisolli, a unica coisa, é que eu não queria criar uma procedure ou função para fazer isso, gostaria de utilizar exatamente o código que passei na solicitação, mas acho que não vai ter jeito, vou ter que criar uma função (estou pensando em criar a tal função), só não sei como vou conseguir passar um parametro para ela no Oracle Reports, então se você puder me enviar os exemplos que você tem, uma apostila ou algo assim... ficaria muito grato...
Seguinte, dá uma pesquisada aqui no fórum por RUN_PRODUCT (Versão 6i e anteriores se não me engano), que irá encontrar exemplos interessantes como este: