powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как получить результат выполнения EXECUTE
8 сообщений из 8, страница 1 из 1
Как получить результат выполнения EXECUTE
    #35194338
СироП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу получать от функции результат ее выполнения допусти 1 если ок или 2 если нет.

Может я что то недопонимаю, как мне точно быть уверенным что все
Код: plaintext
execute
внутри функции отработали нормально.

Cпасибо.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE OR REPLACE FUNCTION set_session_var(
				vartype varchar( 16 ),
				varname varchar( 30 ),
				val anyelement)
RETURNS void AS
$$
DECLARE
    tmp_table varchar( 16 ) := 'session_var_tmp';
BEGIN
    execute 'UPDATE ' || tmp_table || ' SET ' || 
    vartype || '=' || val || ' WHERE varname=''' || varname || ''';'; 
END;
$$
  LANGUAGE 'plpgsql' VOLATILE
  COST  100 ;
...
Рейтинг: 0 / 0
Как получить результат выполнения EXECUTE
    #35194459
StX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
StX
Гость
Если наружу не вылетело ошибки, то внутри всё ок. Все внутренние операции выполняются в той же транзакции, в которой запущена функция (хотя бы и неявной транзакции).
...
Рейтинг: 0 / 0
Как получить результат выполнения EXECUTE
    #35196285
Вадим Прудивус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовать включить обработку ошибок (exception). Или попытаться через returning.
...
Рейтинг: 0 / 0
Как получить результат выполнения EXECUTE
    #35211221
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде де FOUND и на UPDATE возвращает True,если обработана запись...., см. хелп..., но про неё найти трудно...


Код: plaintext
1.
2.
3.
4.
IF FOUND THEN
  Return True;
ELSE
  Return False;
END IF;
...
Рейтинг: 0 / 0
Как получить результат выполнения EXECUTE
    #35422168
Ziva Supernova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если проблема решилась, поделитесь как?
...
Рейтинг: 0 / 0
Как получить результат выполнения EXECUTE
    #35423209
Гость_0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ziva SupernovaЕсли проблема решилась, поделитесь как?
если Вы про эту проблему:
авторМожет я что то недопонимаю, как мне точно быть уверенным что все
execute
внутри функции отработали нормально.
то такой проблемы не существует. execute внутри функции либо выполняются все успешно, либо все отменяются. это гарантируется транзакционностью СУБД.
...
Рейтинг: 0 / 0
Как получить результат выполнения EXECUTE
    #35425927
Ziva Supernova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Реально-ли сделать так, чтобы execute содержал запрос с ошибкой, но функция не отменялась?
...
Рейтинг: 0 / 0
Как получить результат выполнения EXECUTE
    #35426573
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ziva SupernovaРеально-ли сделать так, чтобы execute содержал запрос с ошибкой, но функция не отменялась?да, http://www.postgresql.org/docs/8.3/interactive/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
seb=> create or replace function foo() returns void language plpgsql as $$
seb$> begin
seb$>     execute 'ошибка';
seb$> exception
seb$>     when others then
seb$>         raise notice 'execute error detected';
seb$> end$$;
CREATE FUNCTION
seb=> select foo();
NOTICE:  execute error detected
 foo
-----

( 1  запись)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как получить результат выполнения EXECUTE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]