есть ли в PG аналог RAISE_APPLICATION_ERROR?

Legushka
Дата: 26.11.2014 11:19:03
ребята, если в PGAdmin аналог функции RAISE_APPLICATION_ERROR?
ващето
Дата: 26.11.2014 11:29:54
Legushka
ребята, если в PGAdmin аналог функции RAISE_APPLICATION_ERROR?

PGAdmin -это ващето клиент.
Legushka
Дата: 26.11.2014 11:54:30
ващето прав
раньше на оракле в теле процедуры было RAISE_APPLICATION_ERROR(бла бла бла)

сейчас из процедуры в postgree делаю функцию, дошел до этой строки
как можно из функции кроме результа отправить исключение типа ошибка такая то при выполнении функции, напрмиер не заполнен такой то реквизит и тп
ващето
Дата: 26.11.2014 12:18:27
Legushka,

ващето я недо-ара-калоед
, т.ч. не совсем в теме.

Думаю, если и на ёлку влезть (результат таки вернуть) и попец не ободрать ( Error таки выкинуть ) -- это не совсем по постгресовски.

видится такое решение:
Верните 2 поля. Собственно результат. И поле -- "ошибку_приложения".
И уже клиентом, проверяя второе, -- кидайте ошибку.

//варианты -- запись, содержащую как возврат (в т.ч. возможно рефкурсоры) так и "ошибки" (в т.ч. и собраннвые текстовки контекстов/стека, обработанных по ходу GET DIAGNOSTIC-сом)
[т.е. по ходу кидайтесь настоящими RAISE , а в конце перехватите обработчиком, и запихайте стек в строку]
ващето
Дата: 26.11.2014 12:26:22
ващето,

навскидку посмотрел ора-доку. не понял, чем это отличается от постгресовкого (plpgsql)
RAISE EXCEPTION .... USING .....

-- он же и в ара-кале тут и валится ? или как-то еще и чо-та возвращает ? а йа не вижу
Legushka
Дата: 26.11.2014 14:37:33
спасибо ващето, то что надо)