Na verdade o DECODE completo do seu código é esse:

decode(BL.id_codigo_encerramento, 1,
                decode(BL.id_codigo_informacao, 1,
                        decode(BL.id_codigo_cancelamento, 
1,BL.id_codigo_motivo,BL.id_codigo_cancelamento),
                BL.id_codigo_informacao),
BL.id_codigo_encerramento)


Seguinte:
1 - Se houver id_codigo_encerramento então é informado o 
id_codigo_encerramento.

2 - Se não houver id_codigo_encerramento mas houver 
id_codigo_informacao então é informado o id_codigo_informacao.

3 - E se não houver id_codigo_encerramento nem id_codigo_informacao 
mas houver id_codigo_cancelamento então é informado o 
id_codigo_cancelamento.



--- Em oracle_br@yahoogrupos.com.br, "Cristian" 
<[EMAIL PROTECTED]> escreveu
>
> Pessoal alguém poderia me dizer que esta fazendo esta linha, estou 
analisando um código PL/SQL mas não estou conseguindo entender estas 
linhas.
> 
> decode(BL.id_codigo_encerramento, 1, 
> decode(BL.id_codigo_informacao, 1, 
> decode(BL.id_codigo_cancelamento, 1,
> 
> O código completo é este, se trata de uma função que recebe um ID
> 
> CREATE OR REPLACE FUNCTION INFORMESMARCO.obter_codigo_baixa ( 
ID_BOLET varchar2) 
> return varchar2 is
> cod_baixa varchar2(5);
> begin
> select C.cod_codigo_baixa into cod_baixa FROM
>  (select /*+ PARALLEL (BL 2) */
>  BL.ID,
>  decode(BL.id_codigo_encerramento, 1, 
>  decode(BL.id_codigo_informacao, 1, 
>  decode(BL.id_codigo_cancelamento, 1,
>  BL.id_codigo_motivo,
>  BL.id_codigo_cancelamento),
>  BL.id_codigo_informacao),
>  BL.id_codigo_encerramento) id_codigo_baixa
>  FROM sir.boletim BL
>  where BL.ID = ID_BOLET) V, sir.codigos_baixa C
>  WHERE V.id_codigo_baixa = C.id_codigo_baixa;
>     return cod_baixa;
>  end obter_codigo_baixa;
> /
> 
> Abraço
> 
> Cristian
> 
> [As partes desta mensagem que não continham texto foram removidas]
>







--------------------------------------------------------------------------------------------------------------------------
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

<*> 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:
    http://br.yahoo.com/info/utos.html

 


Responder a