Pular para o conteúdo
  • Este tópico contém 27 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 8 meses atrás por Avatar photoRegis Araujo.
Visualizando 13 posts - 16 até 28 (de 28 do total)
  • Autor
    Posts
  • #87415
    Itimura
    Participante

      desculpem pela má formatação no forum!!

      foi mau!!

      🙁

      #87427
      Avatar photoRegis Araujo
      Participante

        Fala Itimura..

        Bom, a maneira de como vc utilizar está no exemplo que eu passei..

        Com o Cursor…

        Abraços..

        #87431
        Itimura
        Participante

          Thunder,

          ocorreram 2 erros que não to conseguindo decifrar

          1: Erro(9,10): PLS-00103: Encontrado o símbolo “CCURSOR” quando um dos seguintes símbolos era esperado: := . ( @ % ;

          BEGIN

          CURSOR cCursor IS

          --CAMPO A SEREM BUSCADOS</code>
          

          2:Erro(70,1): PLS-00103: Encontrado o símbolo "END" quando um dos seguintes símbolos era esperado: begin function package pragma procedure subtype type use form current cursor

          ORDER BY MOV.CODCLI;

          END REL_REEMBOLSO;

          #87433
          Avatar photoRegis Araujo
          Participante

            Opa..

            Desculpa..

            Eu lhe passei algo errado.. Se for para trazer apenas os valores do seu select.. Vc faz assim..

            CREATE OR REPLACE PROCEDURE REL_REEMBOLSO(dtINICIO IN DATE,
            dtFIM IN DATE,
            fORNEC IN NUMBER,
            cCursor OUT TYPE%TYPE_CURSOR) IS

            BEGIN

            OPEN cCursor FOR

            Desculpe..

            Espero que agora resolva..

            Abraços..

            #87439
            Itimura
            Participante

              Amigo, estamos caminhando para uma solução…

              seguinte erro:

              CREATE OR REPLACE PROCEDURE REL_REEMBOLSO(dtINICIO IN DATE,
              dtFIM IN DATE,
              fORNEC IN NUMBER,
              cCursor OUT TYPE%TYPE_CURSOR) IS

              BEGIN

              OPEN cCursor FOR

              Erro(1): PL/SQL: Compilation unit analysis terminated
              Erro(5,61): PLS-00208: o identificador ‘TYPE_CURSOR’ não é um atributo de cursor válido

              #87458
              Avatar photoRegis Araujo
              Participante

                Ola amigo..

                Bom.. acho que faltou um Type do tipo Type Cursor…

                Cria um Type com o comando abaixo…

                create or replace package types
                as
                type CursorType is ref cursor;
                end;

                Ai vc faz assim…

                CREATE OR REPLACE PROCEDURE REL_REEMBOLSO(dtINICIO IN DATE,
                dtFIM IN DATE,
                fORNEC IN NUMBER,
                cCursor OUT TYPE.CursorType) IS

                BEGIN

                OPEN cCursor FOR

                Acho que agora vai…

                Abraços…

                #87459
                Avatar photoRegis Araujo
                Participante

                  Opa..

                  Retificando de novo…

                  o correto é TYPES.CursorType.. e não TYPE.CursorType

                  Abraços…

                  #87464
                  Itimura
                  Participante

                    Thunder vc tem sido um cara super paciente, obrigado..

                    antes de ler como fiz abaixo lembre-se essa é minha primeira procedure no oracle

                    Foi Compilado, mas creio que da forma que fiz ão esta correta, pois quando vou chama-la no Crystal ele reclama do cursor

                    Crystal Reports
                    Database Connector Error: “ADO Error Code 0x80040e14
                    Source: Microsoft OLE DB Provider for Oracle
                    Description: ORA-06550: line 1, column 15:
                    PLS-00225: subprogram or cursor ‘TESTE’ reference is out of scope
                    ORA-06550: line 1, column 7:
                    PL/SQL: Statement ignored

                    Native Error: 6550 [Database Vendor Code: 6550]

                    :s

                    Eu reescrevi como consegui entender e ficou assim:

                    create or replace
                    PROCEDURE RELAT_REEMBOLSO

                      create or replace package types
                      as
                      type CursorType is ref cursor;
                      end; 
                    

                    (dtINICIO IN DATE,
                    dtFIM IN DATE,
                    fORNEC IN NUMBER,
                    cCursor OUT TYPE.CursorType) IS

                    BEGIN

                    OPEN cCursor FOR

                    #87465
                    Avatar photoRegis Araujo
                    Participante

                      Opa amigo.. bom dia..

                      Bom, não entendo de Reports.. mas vou ajudar no que for necessário..

                      Acho que o erro pode estar na declaração do CursorType.. Eu havia passado para vc declarar como TYPE.CursorType e o correto é TYPES.CursorType com S no final do TYPE..

                      Cria procedure e realiza um teste com ela.. Execute sem ser no Crystal.. E ve se como retornam os valores.

                      Abraços..

                      #87529
                      Itimura
                      Participante

                        Colegas, desculpem por voltar aqui ao problema estive doente e não pude retornar ao serviço…

                        Thunder,

                        um único erro aconteceu apontando para:

                        Erro: Encontrado um simbolo “CREATE” quando um dos simbolos era esperado “(”

                        Tipo… o meu cursor ta no local errado? ja tentei modificar e tb alterar, voltei ao primeiro ponto para exclarecer a dúvida

                        create or replace
                        PROCEDURE RELAT_REEMBOLSO -- aqui acontece a marca do erro

                          create or replace package types
                          as
                          type CursorType is ref cursor;
                          end; 
                        

                        (dtINICIO IN DATE,
                        dtFIM IN DATE,
                        fORNEC IN NUMBER,
                        cCursor OUT TYPES.CursorType) IS

                        BEGIN

                        #87530
                        Avatar photoRegis Araujo
                        Participante

                          Fala Itimura…

                          O Create or Replace TYPE é para vc rodar apartado.. Assim ele irá criar um TYPE que vc vai utilizar na Procedure…

                            create or replace package types
                            as
                            type CursorType is ref cursor;
                            end; 
                          

                          Vc cria este TYPE apenas 1 vez.. e não precisa rodar ele mais..

                          Abraços..

                          #87533
                          Itimura
                          Participante

                            Thunder…

                            Parabéns!

                            FUNCIONA!!!!

                            ficou assim:

                            Criação do Cursor


                            create or replace package types
                            as
                            type CursorType is ref cursor;
                            end;

                            Procedure:


                            create or replace
                            PROCEDURE RELAT_REEMBOLSO

                            (dtINICIO IN DATE,
                            dtFIM IN DATE,
                            fORNEC IN NUMBER,
                            cCursor OUT TYPES.CursorType) IS

                            BEGIN

                            OPEN cCursor FOR

                            --CAMPO A SEREM BUSCADOS
                            SELECT MOV.NUMNOTA       AS "NOTA FISCAL",
                                   NF.DTSAIDA        AS "DATA DE EMISSAO",
                                   NF.CONDVENDA      AS "COD VENDA",
                                   MOV.CODCLI        AS "COD CLIENTE",
                                   CLI.CLIENTE       AS "CLIENTE",
                                   MOV.CODFORNEC     AS "COD FORNECEDOR",
                                   FORNEC.FORNECEDOR AS "FORNECEDOR",
                                   MOV.CODSEC        AS "COD SEÇÃO",
                                   SEC.DESCRICAO     AS "DESCRIÇÃO SEÇÃO",
                                   MOV.CODPROD       AS "COD PRODUTO",
                                   PRO.DESCRICAO     AS "PRODUTO",
                                   MOV.QT            AS "QUANTIDADE VENDIDA",
                                   MOV.PTABELA       AS "PREÇO UNITARIO",
                                   RCA.CODUSUR       AS "CODIGO RCA",
                                   RCA.NOME          AS "RCA"
                            
                            --TABELAS COM ALIAS
                            FROM   PCNFSAID NF,
                                   PCMOV    MOV,
                                   PCPRODUT PRO,
                                   PCCLIENT CLI,
                                   PCFORNEC FORNEC,
                                   PCSECAO  SEC,
                                   PCUSUARI RCA
                            
                            --"JOIN"
                            WHERE  NF.NUMNOTA = MOV.NUMNOTA
                            AND    MOV.CODPROD = PRO.CODPROD
                            AND    MOV.CODCLI = CLI.CODCLI
                            AND    FORNEC.CODFORNEC = MOV.CODFORNEC
                            AND    SEC.CODSEC = MOV.CODSEC
                            AND    RCA.CODUSUR = MOV.CODUSUR
                            
                                  --CONDIÇOES
                            AND    NF.DTSAIDA BETWEEN dtINICIO AND dtFIM
                            AND    NF.CONDVENDA IN (1, 5)
                            AND    MOV.CODFORNEC = fORNEC
                            AND    MOV.CODCLI IN
                            

                            -- POR DESCARGO DE CONCIENCIA.. MUDANDO OS "ALIAS" DAS TABELAS...
                            -- VERIFICAR A REAL NECESSIDADE DE REALIZAR O SELECT ABAIXO...
                            -- AJUSTANDO PODE-SE OBTER O MESMO RESULTADO APENAS COM O SELECT ACIMA...

                                   (SELECT NF2.CODCLI
                                     FROM   PCNFSAID NF2,
                                            PCMOV    MOV2,
                                            PCPRODUT PRO2,
                                            PCCLIENT CLI2
                                     WHERE  NF2.NUMNOTA    = MOV2.NUMNOTA
                                     AND    MOV2.CODPROD   = PRO2.CODPROD
                                     AND    MOV2.CODCLI    = CLI2.CODCLI
                                     AND    NF2.CONDVENDA||MOV.CODFORNEC = 51 -- AJUSTANDO PARA MELHORAR SEU SELECT...
                            

                            -- AND NF2.CONDVENDA = 5
                            -- AND MOV2.CODFORNEC = 1
                            AND NF2.DTSAIDA BETWEEN dtINICIO AND dtFIM)

                            ORDER  BY MOV.CODCLI;
                            

                            END RELAT_REEMBOLSO;

                            Valew!@

                            Grande abraço []’s

                            #87544
                            Avatar photoRegis Araujo
                            Participante

                              Opa..

                              Ainda bem que pude lhe ajudar..

                              Abraços…

                            Visualizando 13 posts - 16 até 28 (de 28 do total)
                            • Você deve fazer login para responder a este tópico.