Ao tentar executar a função categoria_cliente o sqldeveloper me retorna o seguinte erro:
Erro a partir da linha : 51 no comando -
BEGIN :g_CATEGORIA := categoria_cliente(110000); END;
Relatório de erros -
ORA-06503: PL/SQL: Função retornada sem valor
ORA-06512: em "CURSOPLSQL.CATEGORIA_CLIENTE", line 16
ORA-06512: em line 1
06503. 00000 - "PL/SQL: Function returned without value"
*Cause: A call to PL/SQL function completed, but no RETURN statement was
executed.
*Action: Rewrite PL/SQL function, making sure that it always returns
a value of a proper type.
O erro acontece ao tentar executar o comando:
EXECUTE :g_CATEGORIA := categoria_cliente(110000);
Segue meu código:
CREATE OR REPLACE FUNCTION categoria_cliente
(p_FATURAMENTO_PREVISTO IN CLIENTE.FATURAMENTO_PREVISTO%TYPE)
RETURN CLIENTE.CATEGORIA%TYPE
IS
v_CATEGORIA CLIENTE.CATEGORIA%TYPE;
BEGIN
IF p_FATURAMENTO_PREVISTO < 10000 THEN
v_CATEGORIA := 'PEQUENO';
ELSIF p_FATURAMENTO_PREVISTO < 50000 THEN
v_CATEGORIA := 'MÉDIO';
ELSIF p_FATURAMENTO_PREVISTO < 100000 THEN
v_CATEGORIA := 'MÉDIO';
ELSE
v_CATEGORIA := 'GRANDE';
END IF;
END;
VARIABLE g_CATEGORIA VARCHAR2(100);
EXECUTE :g_CATEGORIA := categoria_cliente(110000);
PRINT g_CATEGORIA;