Função erro de CASE

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
pmv1980
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 97
Registrado em: Qua, 07 Jan 2009 12:39 pm
Localização: Recife

Na criação da função abaixo, ocorre esse erro, alguém pode me ajudar, por favor.

PLS-00103: Encountered the symbol "CASE" when expecting one of the following:

Selecionar tudo

CREATE OR REPLACE FUNCTION       TESTEFUNCAO (
                          CONTA IN INTEGER,
                          TIPO IN VARCHAR2
                        ) RETURN VARCHAR2 IS


RETORNO VARCHAR2(50);

BEGIN

CASE TIPO
  WHEN 'BANCO'
  THEN
        SELECT CODIGO
        INTO RETORNO
        FROM TABELA
        WHERE CODIGOCONTA = CONTA;

  WHEN 'MOEDA'
  THEN
        SELECT CODIGO
        INTO RETORNO
        FROM TABELA
        WHERE CODIGOCONTA = CONTA;

END CASE;
RETURN(RETORNO);

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

NaPraia
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 88
Registrado em: Sex, 22 Fev 2008 8:24 am
Localização: Floripa - SC

tenta

Selecionar tudo

CREATE OR REPLACE FUNCTION       TESTEFUNCAO (
                          CONTA IN INTEGER,
                          TIPO IN VARCHAR2
                        ) RETURN VARCHAR2 IS


RETORNO VARCHAR2(50);

BEGIN

if TIPO = 'BANCO' THEN
        SELECT CODIGO
        INTO RETORNO
        FROM TABELA
        WHERE CODIGOCONTA = CONTA;

elsif 'MOEDA' THEN
        SELECT CODIGO
        INTO RETORNO
        FROM TABELA
        WHERE CODIGOCONTA = CONTA;

end if;
RETURN(RETORNO);

END;
edixsantos
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qua, 24 Dez 2008 3:32 pm
Localização: Osasco

no final do código tira o case .

troca END CASE;

por END ;

Acredito que resolve o probema do erro que está ocorrendo.
Responder
  • Informação
  • Quem está online

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