transforme em uma procedure com parametros in e out
-----Mensagem original-----
De: Gabriel Herdt [mailto:[EMAIL PROTECTED]
Enviada em: sexta-feira, 28 de abril de 2006 11:19
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Função que não funciona! porque?
Qual o erro dessa função? ela não esta retornando o valor e nem
dando o update e insert.
FUNCTION FN_GRMOVEST
( PR_EMPRES IN NUMBER,
PR_CLIFOR IN NUMBER,
PR_PRODUT IN VARCHAR2,
PR_ESTMIN IN NUMBER,
PR_ESTMAX IN NUMBER,
PR_FORPRO IN NUMBER,
PR_DTLANC IN DATE,
PR_QTDADE IN NUMBER,
PR_VLUNIT IN NUMBER,
PR_TIPMOV IN NUMBER,
PR_ENTSAI IN CHAR,
PR_NUMDOC IN NUMBER,
PR_UNIARM IN NUMBER,
PR_CENCUS IN NUMBER)
RETURN NUMBER IS
nESTFIS number;
nVlCusto number;
nVlCusMed number;
nLancto number;
nrownum number;
BEGIN
Select (FN_SEMOES(PR_EMPRES))NR_LANCTO Into nLancto From dual;
Select rownum, VL_ESTFIS, VL_CUSTO, VL_CUSMED INTO nrownum,
nESTFIS, nVlCusto, nVlCusMed
FROM CEESTPRO
WHERE CD_EMPRES = PR_EMPRES AND CH_PRODUT = PR_PRODUT
AND CD_UNIARM = PR_UNIARM;
IF PR_ENTSAI = 'S' THEN
nESTFIS := (nESTFIS - PR_QTDADE);
UPDATE CEESTPRO SET
VL_ESTFIS = nESTFIS
WHERE CD_EMPRES = PR_EMPRES AND CH_PRODUT = PR_PRODUT
AND CD_UNIARM = PR_UNIARM;
ELSIF PR_ENTSAI = 'E' THEN
nESTFIS := (nESTFIS + PR_QTDADE);
UPDATE CEESTPRO SET
VL_ESTFIS = nESTFIS
WHERE CD_EMPRES = PR_EMPRES AND CH_PRODUT = PR_PRODUT
AND CD_UNIARM = PR_UNIARM;
ELSIF nrownum = '' THEN
Insert into CEESTPRO
(CD_EMPRES, CH_PRODUT, CD_UNIARM, VL_ESTFIS,
VL_ESTMIN, VL_CUSMED, VL_ESTMAX, VL_CUSTO)
VALUES
(PR_EMPRES, PR_PRODUT, PR_UNIARM, nESTFIS, PR_ESTMIN,
nVlCusMed ,PR_ESTMAX, nVlCusto);
END IF;
Insert into CEMOVIME
(CD_EMPRES, DT_LANCTO, CD_CLIFOR, CD_TIPMOV, NR_LANCTO,
CH_PRODUT,
CD_FORPRO, NR_QTDADE, VL_UNITAR, NR_DOCTO, NR_FISATU, VL_CUSMED,
VL_CUSTO, CD_UNIARM, CD_CUSTO)
VALUES
(PR_EMPRES, PR_DTLANC, PR_CLIFOR, PR_TIPMOV, nLancto, PR_PRODUT,
PR_FORPRO, PR_QTDADE, PR_VLUNIT, PR_NUMDOC, nESTFIS, nVlCusMed,
nVlCusto, PR_UNIARM, PR_CENCUS);
RETURN nLancto;
END;
Select fn_grmovest(1,1,'102',50,100,1,TO_DATE('28-04-
2006'),5,100,1,'E',99,1,1) from dual
----------------------------------------------------------------------------
----------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
----------------------------------------------------------------------------
----------------------------------------------______________________________
____________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o
link do mesmo para evitar trafego(pedidos) desnecessário.
Links do Yahoo! Grupos
--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________
Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o link do mesmo para evitar trafego(pedidos) desnecessário.
Yahoo! Grupos, um serviço oferecido por: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.