CREATE TABLE TABELA(
nome char(1)
);
Se o parâmetro de entrada for '12', por exemplo, dá um erro:
"value too long for type character(1)" isso porque '12' ultrapassa o limite de caractere do campo nome.
Alguém sabe que exceção uso para tratar esse erro?
Tentei INVALID_PARAMETER_VALUE e INVALID_LIMIT_VALUE, mas não deu certo.
CREATE OR REPLACE FUNCTION inserir(char(1))RETURNS BOOLEAN AS
$$
BEGIN
INSERT INTO TABELA(nome) VALUES($1);
IF FOUND THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
EXCEPTION WHEN INVALID_PARAMETER_VALUE THEN
RAISE NOTICE 'ERRRO';
END;
$$LANGUAGE PLPGSQL;
CREATE OR REPLACE FUNCTION inserir(char(1))RETURNS BOOLEAN AS
$$
BEGIN
INSERT INTO TABELA(nome) VALUES($1);
IF FOUND THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
EXCEPTION WHEN INVALID_LIMIT_VALUE THEN
RAISE NOTICE 'ERRRO';
END;
$$LANGUAGE PLPGSQL;
Alguém tem uma ideia?
Encontrei uma exceção genérica - OTHERS.
CREATE OR REPLACE FUNCTION inserir(char(1))RETURNS BOOLEAN AS
$$
BEGIN
BEGIN
INSERT INTO TABELA(nome) VALUES($1);
IF FOUND THEN
RETURN TRUE;
ELSE
RETURN FALSE;
END IF;
EXCEPTION WHEN OTHERS THEN
RETURN FALSE;
END;
END;
$$LANGUAGE PLPGSQL;