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
  

Mensagemem Ter, 07 Dez 2004 3:47 pm

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

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

Código: Selecionar todos
  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
Localização: Porto Alegre - RS

Samuel, o lamanit@

Mensagemem Ter, 07 Dez 2004 4:35 pm

Já tentei com CASE também e não funcionou....

Código: Selecionar todos
  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
Localização: Porto Alegre - RS

Samuel, o lamanit@

Mensagemem Ter, 07 Dez 2004 5:04 pm

Parece que só funciona a partir do Oracle 9i em diante...
lamanita
Localização: Porto Alegre - RS

Samuel, o lamanit@

Mensagemem Seg, 18 Ago 2008 7:13 pm

AOT
Localização: SP

Mensagemem Ter, 19 Ago 2008 6:44 pm

lamanita o case deve funcionar se for feito assim:
Código: Selecionar todos
  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
gokden
Localização: Ribeirão Preto - SP

Lucas de Souza

OCA Developer
Analista de sistemas

Mensagemem Ter, 19 Ago 2008 11:50 pm

Show de bola !!! :-o
dr_gori
Localização: Portland, OR USA

Thomas F. G

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


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


Voltar para PL/SQL

Quem está online

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

cron