esse parametro in e out? e a questão de retorno? eu preciso
retornar o valor nrlancto.
--- Em oracle_br@yahoogrupos.com.br, Valtemir Araujo de Lima
<[EMAIL PROTECTED]> escreveu
>
> funcao em select nao insere/altera/deleta
> 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!.