help on a function with exception
От | M. D. |
---|---|
Тема | help on a function with exception |
Дата | |
Msg-id | 4F5F91F6.2020103@turnkey.bz обсуждение исходный текст |
Ответы |
Re: help on a function with exception
|
Список | pgsql-sql |
Hi, I want to do a check on a column if other columns meet certain conditions. The program I'm working with allows to create additional columns on every 'object' - called extra data, but I have no control over the program. I want to enforce the values on this one extra data to be of type date. My idea was to do a Trigger function and cast to a date and if there's an exception, raise an error. Below is what I've tried, but it just keeps on Raising Exception. Could someone please help me? The date I enter is: 2012-10-10 which works fine if I do a: select '2012-10-10'::date Thanks --Postgres 9.0 CREATE OR REPLACE FUNCTION fnc_check_PO_extra_date() RETURNS trigger AS $BODY$ DECLARE tmp_date date; BEGIN IF (TG_OP = 'INSERT' OR TG_OP = 'UPDATE') THEN IF (NEW.data_value IS NOT NULL or new.data_value = '') and NEW.extra_id = (select extra_id from extra_data where data_type = 9 and (data_name = 'ETA' or data_name= 'Adjusted ETA')) THEN tmp_date := new.data_value::date; END IF; END IF; EXCEPTION WHEN othersTHEN RAISE EXCEPTION 'Invalid date on Extra Data!'; return NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE CREATE TRIGGER trg_check_PO_extra_date BEFORE INSERT OR UPDATE ON extra_values FOR EACH ROW EXECUTE PROCEDURE fnc_check_PO_extra_date();
В списке pgsql-sql по дате отправления: