SELECT DENTRO DO CURSOR

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
leonardo.r.aguiar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Ter, 06 Jan 2009 9:45 am
Localização: Diadema - SP

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:

Selecionar tudo

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.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Você quer printar o teu sNFs?

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:

Selecionar tudo

Dbms_output.put_line('sNFs:'||sNFs);
Se tiver mais alguma dúvida, manda pra gente.
leonardo.r.aguiar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Ter, 06 Jan 2009 9:45 am
Localização: Diadema - SP

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.

Vocês podem me ajudar, por favor?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Então brother,

Seguinte,

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.
leonardo.r.aguiar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Ter, 06 Jan 2009 9:45 am
Localização: Diadema - SP

É 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...

Obrigado.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Então brother,

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:

http://glufke.net/oracle/viewtopic.php? ... runproduct

Qualquer coisa, só falar.
leonardo.r.aguiar
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 4
Registrado em: Ter, 06 Jan 2009 9:45 am
Localização: Diadema - SP

Muitissimo obrigado Trevisolli, vou dar uma vasculhada pelo forum...
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante