Pular para o conteúdo
  • Este tópico contém 4 respostas, 3 vozes e foi atualizado pela última vez 18 anos, 1 mês atrás por chduarte.
Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #78032
    Anônimo

      Olá Pessoal, gostaria de saber se tem como eu pegar o resultado de um fetch do cursor atravéz de um select.

      Tipo seguindo esta lógica:

      Ou então jogar numa variável normalmente mas sem declarar que tipo de linha ela corresponde.

      [b]
      begin
      OPEN crs_cada;
      select * from (fetch crs_cada);
      –fetch pkg_cada.crs_cada into nome, codigo;
      –dbms_output.put_line( nome || codigo);
      end;
      [/b]

      Grato a todos.

      #78041
      CJones
      Participante

        Voce pode fazer da seguinte forma.

        CURSOR TESTE IS
        SELECT NOME
        FROM TABELA
        WHERE 1 = 1;

        FOR V_INDICE IN TESTE LOOP — 1
        VARIAVEL := TESTE.NOME; — 2
        END LOOP;

        — TESTE É O NOME DO CURSOR E V_INDICE UM INDICE QUALQUER.
        — UMA VARIAVEL DECLARADA RECEBE O CAMPO DO CURSOR.

        Espero ter ajudado.

        Grande [].

        #78045
        chduarte
        Participante

          Sim. Chama-se query “aninhada”.

          Um exemplo para fazer top 10:

          SQL> select *
          from (select owner,count(1) total from all_objects group by owner order by 2 desc)
          where rownum <= 10
          /

          []

          #78056
          Anônimo

            tem como eu criar um cursor baseado nos resultados do fetch de outro, sem auxilio de variavel intermediária ?

            Grato.

            #78058
            chduarte
            Participante

              Sim:

              SQL> begin
              for crs1 in (select username from dba_users) loop
              for crs2 in (Select count(1) total from dba_objects where owner = crs1.username) loop
              dbms_output.put_line(‘Total de objetos do usuario ‘||crs1.username||’: ‘||crs2.total);
              end loop;
              end loop;
              end;
              /

              []

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.
            plugins premium WordPress