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

      Olá, amigos!
      Tenho uma package, mais ou menos com a estrutura abaixo e estou com dúvidas na sua execução no sqlplus. Tentei executar conforme está especificado abaixo, porém não funcionou muito bem.Sei que existem outras formas de retornar o que estou querendo, porém neste caso necessito que seja exatamente desta maneira. Desde já agradeço a ajuda.

      VARIABLE V1 REFCURSOR
      VARIABLE V2 ??????
      EXECUTE PKG_BUSCA.P_BUSCAR(XXX…,XXX.,:V1,:V2)

      CREATE OR REPLACE PACKAGE PKG_BUSCA IS

      TYPE CURSOR_TYPE IS REF CURSOR;
      TYPE ERROR_TYPE IS RECORD(
      COD_ERRO NUMBER(3),
      MSG_ERRO VARCHAR2(100)
      );
      PROCEDURE P_BUSCAR(
      p_NR_CNPJ IN T4.TB_CLIENTE.NR_CNPJ%TYPE,
      p_TP_ACES IN T4.TB_SOLICITACAO.TP_ACES%TYPE,
      p_RESULT OUT CURSOR_TYPE,
      p_ERRO OUT ERROR_TYPE
      );

      END PKG_BUSCA;

      #78298
      chduarte
      Participante

        Adaptado para reduzir a quantidade de parametros:

        CREATE OR REPLACE PACKAGE PKG_BUSCA IS

        TYPE CURSOR_TYPE IS REF CURSOR;
        TYPE ERROR_TYPE IS RECORD(
        COD_ERRO NUMBER(3),
        MSG_ERRO VARCHAR2(100)
        );

        PROCEDURE P_BUSCAR(
        p_NR_CNPJ IN number,
        p_RESULT OUT CURSOR_TYPE);

        END PKG_BUSCA;
        /

        CREATE OR REPLACE PACKAGE body PKG_BUSCA IS

        PROCEDURE P_BUSCAR(
        p_NR_CNPJ IN number,
        p_RESULT OUT CURSOR_TYPE)
        as
        begin
        open p_RESULT for ‘select user from dual’;
        end;

        END PKG_BUSCA;
        /

        variable crs refcursor
        exec PKG_BUSCA.P_BUSCAR(0,:crs);
        print :crs

        Tudo isso deve ser executado no SQL*Plus

        Grande []

        #78328
        Anônimo

          Acho que não me expressei bem, pois minha dúvida é a respeito de como executar uma procedure no SQL PLUS tendo um parametro de saída do tipo record.

          #78332
          Marcio68Almeida
          Participante

            [quote=”mouraca”:2axmxz13]Acho que não me expressei bem, pois minha dúvida é a respeito de como executar uma procedure no SQL PLUS tendo um parametro de saída do tipo record.[/quote]
            Nosso amigo respondeu…
            variable crs refcursor
            exec PKG_BUSCA.P_BUSCAR(0,:crs);
            print :crs

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