Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не работает insert из процедуры / 9 сообщений из 9, страница 1 из 1
28.12.2015, 15:55
    #39139434
_axl1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
Есть такой код, вызываемый внутри хранимки:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
		insertquery := format('INSERT INTO '|| trg_tbl || ' (' || cols || ') VALUES (' || toinsert_text || ');');

		BEGIN
			EXECUTE insertquery;	

			--IF NOT FOUND THEN
			--    RAISE EXCEPTION 'Unable to insert row, query %', 
			--	(insertquery || trg_tbl || ' (' || cols || ') VALUES ' || '(' || toinsert_text || ')');
			--END IF;
		
			EXCEPTION
			  WHEN others THEN
			    RAISE NOTICE 'SQLSTATE: %', SQLSTATE;
			    RAISE;

			    RETURN FALSE;
		END;

RAISE NOTICE '%', insertquery;
	



В результате выполнения в вставки не просиходит, ошибок никаких не выводит, в логах тоже пусто, в трейс выводит корректную команду INSERT. Что это может быть, как побудить, куда копать хотя бы?
...
Рейтинг: 0 / 0
28.12.2015, 16:29
    #39139476
MadeOfGlass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
_axl1, как происходит управление транзакцией?
...
Рейтинг: 0 / 0
28.12.2015, 16:31
    #39139479
_axl1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
Обычный вызов
SELECT * FROM proc_name()
...
Рейтинг: 0 / 0
28.12.2015, 16:35
    #39139483
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
_axl1,

куда копать -- очевидно --- заюзать "корректную команду из трейса" руками -- и смотреть результат.

если результата нет -- искать триггер на таблице назначения перенаправляющий или отменяющий событие.
...
Рейтинг: 0 / 0
28.12.2015, 16:38
    #39139486
_axl1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
Руками команда, скопированная из трейса выполняется корректно, все вставляется
...
Рейтинг: 0 / 0
28.12.2015, 22:24
    #39139666
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
_axl1,

закоментируйте EXCEPTION чясть кода, и пробуйте выполнять функцию. ошибка будет бить в лицо, а не тихо подметатся под ковёр. ну или делайте не RAISE NOTICE а RAISE WARNING хотябы, тогда чтото увидете и в логах. NOTICE сообщения выбрасывает в консоль из которой запускался процесс который собственно и сгенерировал тот самый NOTICE (это при дефолтных параметрах PostgreSQL). или меняйте log_min_messages, и log_min_error_statement на NOTICE, тогда и при нынешнем коде можно в логах чтолибо искать.
...
Рейтинг: 0 / 0
29.12.2015, 11:49
    #39139907
_axl1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
Exceptions убрал, ничего не изменилось. Для чего переводить вывод из консоли в лог? Я пока дебажу руками, мне так даже удобнее.
...
Рейтинг: 0 / 0
29.12.2015, 12:16
    #39139941
MadeOfGlass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
_axl1, так после вызова процедуры вы делаете фиксацию транзакции?
...
Рейтинг: 0 / 0
29.12.2015, 12:23
    #39139952
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает insert из процедуры
_axl1,

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


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