powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с процедурой
12 сообщений из 37, страница 2 из 2
помогите с процедурой
    #39794392
korva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"PostgreSQL 9.6.12 on x86_64-pc-linux-gnu (Debian 9.6.12-1.pgdg90+1), compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit"

Я что-то не понимаю? Устанавливал с репозитория http://apt.postgresql.org/pub/repos/apt/ В синаптике написано что postgresql 11...
...
Рейтинг: 0 / 0
помогите с процедурой
    #39794398
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korva"PostgreSQL 9.6.12 on x86_64-pc-linux-gnu (Debian 9.6.12-1.pgdg90+1), compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit"

Я что-то не понимаю? Устанавливал с репозитория http://apt.postgresql.org/pub/repos/apt/ В синаптике написано что postgresql 11...

Что то где то накосячили и поставили не ту версию. Что и где - никто кроме вас не знает.
...
Рейтинг: 0 / 0
помогите с процедурой
    #39794436
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А скорей всего поставили и 11 версию и 9.6 оставили на месте. Это штатный вариант для deb пакета, можно ставить разные версии базы, они встанут на разные порты. pg_lsclusters подскажет.
...
Рейтинг: 0 / 0
помогите с процедурой
    #39794443
korva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pg_lsclusters в самом деле помогло - спасибо!
Но удивительно то, что я удалял 9.6 перед установкой 11.2: неисповедимы пути Линуксодни.
...
Рейтинг: 0 / 0
помогите с процедурой
    #39794791
korva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправил версии, стало интереснее:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
CREATE OR REPLACE PROCEDURE tt.tp(
	in_bytea bytea)
LANGUAGE 'plpgsql'
SECURITY DEFINER 
AS $BODY$
BEGIN

  INSERT INTO tt.debuginfo(command, errtext, datetimetz)
	VALUES (in_bytea, 'tt.tp() testing first message', now());
  COMMIT;


  INSERT INTO tt.debuginfo(command, errtext, datetimetz)
	VALUES (in_bytea, 'tt.tp() testing second message', now());
  COMMIT;
  

  INSERT INTO tt.debuginfo(command, errtext, datetimetz)
	VALUES (in_bytea, 'tt.tp() testing third message', now());

END
;$BODY$;



При вызове выдаёт:
Код: plaintext
1.
2.
3.
ERROR:  ОШИБКА:  неверное завершение транзакции
КОНТЕКСТ:  функция PL/pgSQL tt.tp(bytea), строка 6, оператор COMMIT
SQL state: 2D000
Context: функция PL/pgSQL tt.tp(bytea), строка 6, оператор COMMIT

У кого либо вообще работают коммиты в процедурах? В инете нашел пример с коммитом и он работает, но там UPDATE, а у меня INSERT. У коммитов есть предрассудки?
...
Рейтинг: 0 / 0
помогите с процедурой
    #39794966
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korva,

Процедуру с COMMIT внутри нужно вызывать оператором CALL .
...
Рейтинг: 0 / 0
помогите с процедурой
    #39795021
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузановkorva,

Процедуру с COMMIT внутри нужно вызывать оператором CALL .

да, еще бы ТС рассказал, нахрена он расставил там коммиты
...
Рейтинг: 0 / 0
помогите с процедурой
    #39796298
korva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин: Мне нужно проверять кучу входных данных, если есть ошибки то логировать, коммитить и выходить. Было-бы не нужно - не стал бы голову над этим ломать.

Павел Лузанов: так я и делаю
...
Рейтинг: 0 / 0
помогите с процедурой
    #39796330
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
помогите с процедурой
    #39796358
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korvaРолг Хупин: Мне нужно проверять кучу входных данных, если есть ошибки то логировать, коммитить и выходить. Было-бы не нужно - не стал бы голову над этим ломать.

Павел Лузанов: так я и делаю

т.е. поломав голову было решено поставить явно после каждого из двух инсертов коммиты, не ставить после третьего и на этом ломка закончилась?
...
Рейтинг: 0 / 0
помогите с процедурой
    #39797576
korva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,
Не совсем так. Вообще это пример простого запроса в котором отчего-то не работают транзакции, хотя такой же запрос с UPDATE вместо INSERT работает без ошибок. В реальных процедурах куча IF в которых должен идти лог ошибок и коммит транзакций, но транзакции не работают и весь хитрый план насмарку из-за этого.
...
Рейтинг: 0 / 0
помогите с процедурой
    #39797586
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korvaРолг Хупин,
Не совсем так. Вообще это пример простого запроса в котором отчего-то не работают транзакции, хотя такой же запрос с UPDATE вместо INSERT работает без ошибок. В реальных процедурах куча IF в которых должен идти лог ошибок и коммит транзакций, но транзакции не работают и весь хитрый план насмарку из-за этого.

Покажите полный тестовый пример который можно запустить на пустой базе и получить ошибку.
Тогда и совет будет нормальный.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / помогите с процедурой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (3): Анонимы (3)
Пользователи онлайн (15): Анонимы (12), Yandex Bot, Bing Bot 4 мин., Google Bot 8 мин.
x
x
Закрыть


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