Switch no oracle

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
lamanita
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 42
Registrado em: Seg, 17 Mai 2004 2:41 pm
Localização: Porto Alegre - RS
Samuel, o lamanit@

E ai pessoal, algum de vocês já conseguiu fazer switch com PLSQL ?

Vi um exemplo assim mas não funciona...

Selecionar tudo

  function fnc_retorna_fornecedor( p_registro_lido in varchar2 ) return varchar2 is
     lv_resultado           varchar2(1);     
  begin
     switch( p_registro_lido ) {          
        case like '%FORNECEDORES ESTRANGEIROS%':
           lv_resultado := 'E';
           break;
        case like '%FORNECEDORES NACIONAIS - PESSOAS FISICAS%':
           lv_resultado := 'F';
           break;
        case like '%FORNECEDORES NACIONAIS - PESSOAS JURIDICAS%':
           lv_resultado := 'J';
           break;                   
     }
     return lv_resultado;
  end;
Obrigado galera...
lamanita
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 42
Registrado em: Seg, 17 Mai 2004 2:41 pm
Localização: Porto Alegre - RS
Samuel, o lamanit@

Já tentei com CASE tb e não funcionou....

Selecionar tudo

  function fnc_retorna_fornecedor( p_registro_lido in varchar2 ) return varchar2 is
     lv_resultado           varchar2(1) := 'A';     
  begin     
     case        
        when p_registro_lido like '%FORNECEDORES ESTRANGEIROS%' then
           lv_resultado := 'E'; 
        when p_registro_lido like '%FORNECEDORES NACIONAIS - PESSOAS FISICAS%' then
           lv_resultado := 'F';
        when p_registro_lido like '%FORNECEDORES NACIONAIS - PESSOAS JURIDICAS%' then
           lv_resultado := 'J';        
     return lv_resultado;
  end;
lamanita
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 42
Registrado em: Seg, 17 Mai 2004 2:41 pm
Localização: Porto Alegre - RS
Samuel, o lamanit@

Parece que só funciona a partir do Oracle 9i em diante...
AOT
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Seg, 18 Ago 2008 7:12 pm
Localização: SP

gokden
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 264
Registrado em: Dom, 19 Ago 2007 8:18 pm
Localização: Ribeirão Preto - SP
Lucas de Souza

OCA Developer
Analista de sistemas

lamanita o case deve funcionar se for feito assim:

Selecionar tudo

  function fnc_retorna_fornecedor( p_registro_lido in varchar2 ) return varchar2 is
     lv_resultado           varchar2(1) := 'A';     
  begin     
     lv_resultado := case
                        when p_registro_lido like '%FORNECEDORES ESTRANGEIROS%' then
                           'E'
                        when p_registro_lido like '%FORNECEDORES NACIONAIS - PESSOAS FISICAS%' then
                           'F'
                        when p_registro_lido like '%FORNECEDORES NACIONAIS - PESSOAS JURIDICAS%' then
                           'J'
                     end;
     return lv_resultado;
  end;
aqui deu certo =D
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Show de bola !!! :-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes