Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка в процедуре Помогите плиз !!
|
|||
|---|---|---|---|
|
#18+
Привет всем Сорри туплю наверно, но просто не понимаю. Подскажите пожалуста в чем проблема ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. при выполнении "select * from prc_test_t( 0, 1 )" ругается ERROR: syntax error at or near "" CONTEXT: compile of PL/pgSQL function "prc_test_t" near line 30 Объясните пожалуста в чем проблема Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2004, 11:36 |
|
||
|
Ошибка в процедуре Помогите плиз !!
|
|||
|---|---|---|---|
|
#18+
Транзакцию в функции нельзя начинать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 03:30 |
|
||
|
Ошибка в процедуре Помогите плиз !!
|
|||
|---|---|---|---|
|
#18+
Плохо, мягко выражаясь. Можноли какимто образом выполнить несколько запросов и в случае ошибки хотябы в одном откатить все ?? тоесть типа BEGIN TRANSACTION insert_1 IF ERROR THEN ROLLBACK ; RETURN -1; insert_2 IF ERROR THEN ROLLBACK ; RETURN -1; update_X IF ERROR THEN ROLLBACK ; RETURN -1; COMMIT TRANSACTION Помогите пожалуста. Везде написано Постгре поддерживает транзакции, но нигде не написано как с ними работать. Спасибо и извините за возможно глупые вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 12:08 |
|
||
|
Ошибка в процедуре Помогите плиз !!
|
|||
|---|---|---|---|
|
#18+
Про работу с транзакциями написано (сюрприз!) в официальной документации. Функция всегда выполняется в транзакции, хочешь этого или нет. То, что ты описал - в функции работает по-умолчанию. Как только встретится ошибка - транзакция откатывается, не надо ничего самому проверять. После этого, если транзакция открыта явно, до COMMIT или ROLLBACK сервер будет ругаться и игнорировать твои запросы. А вот возможность обрабатывать ошибки и делать SAVEPOINT/ROLLBACK TO SAVEPOINT появилась только в 8.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 12:26 |
|
||
|
Ошибка в процедуре Помогите плиз !!
|
|||
|---|---|---|---|
|
#18+
фффф Про работу с транзакциями написано (сюрприз!) в официальной документации. Функция всегда выполняется в транзакции, хочешь этого или нет. То, что ты описал - в функции работает по-умолчанию. Как только встретится ошибка - транзакция откатывается, не надо ничего самому проверять. Согласен описано, и с этим то все понятно. фффф После этого, если транзакция открыта явно, до COMMIT или ROLLBACK сервер будет ругаться и игнорировать твои запросы. Вот меня и интересует явное открытие транзакции и последующий ее откат. Пожалуста хоть один примерчик явного открытия/закрытия транзакции в теле функции. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 12:35 |
|
||
|
Ошибка в процедуре Помогите плиз !!
|
|||
|---|---|---|---|
|
#18+
Т.к. функция всегда выполняется в транзакции, внутри функции открыть еще одну транзакцию нельзя. Откат при ошибке произойдет сам собой. А явное открытие - это только в клиентском приложении (или скрипте для psql): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 12:54 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=350&tid=2007583]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 358ms |

| 0 / 0 |
