3
Я использую простую функцию для обработки коды исключения есть ..PostgreSQL Исключение обработки деталей с GET STACKED ДИАГНОСТИКИ
CREATE OR REPLACE FUNCTION test(INT4) RETURNS void as $$
DECLARE
v_state TEXT;
v_msg TEXT;
v_detail TEXT;
v_hint TEXT;
v_context TEXT;
BEGIN
BEGIN
INSERT INTO test2 (id) VALUES ($1);
EXCEPTION WHEN others THEN
GET STACKED DIAGNOSTICS
v_state = RETURNED_SQLSTATE,
v_msg = MESSAGE_TEXT,
v_detail = PG_EXCEPTION_DETAIL,
v_hint = PG_EXCEPTION_HINT,
v_context = PG_EXCEPTION_CONTEXT;
raise notice E'Got exception:
state : %
message: %
detail : %
hint : %
context: %', v_state, v_msg, v_detail, v_hint, v_context;
END;
RETURN;
END;
$$ language PLpgSQL;
но это дает ERROR: syntax error at or near "STACKED" GET STACKED DIAGNOSTICS
.
Я использую PostgreSQL 9.1 и pgadmin 3.
yes aleroot Большое вам спасибо, что у меня была обновленная версия postgreSQL от 9.1 до 9.2__ и теперь она работает нормально. – khushbu