› Fóruns › SQL e PL/SQL › Problem Procedure › Problem Procedure
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