|
|
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
AserYZ, A(errCode); если код ошибки 0, то продолжаем В(errCode) если и здесь все ок errCode = 0, то коммит и вернуть errCode. ************** A(errCode); если код ошибки -1, rollback, и вернуть код ошибки. т.е. -1) В() не вызываем. ************************ A(errCode); если код ошибки 0, то продолжаем В(errCode) если errCode = -1, то rollback, и вернуть код ошибки. т.е. -1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 17:08 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
AserYZЭто если где-то в A() какой-то умник не поставил. WHEN OTHERS THEN NULL Пусть процедура содержит секцию обработки исключительных ситуаций и завершается без exception. Это означает, что процедура завершилась УСПЕШНО, что бы это ни значило. Если при этом результат выполнения процедуры не соответствует ТЗ, то такая проблема решается багрепортом с последующим багфиксом указанной процедуры. Не дело вызывающего кода контролировать корректность вызываемых методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 17:16 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Alex2019если код ошибки -1, rollback Сразу два недочета. - интерфейс, основанный на анализе кода ошибок, ведет к многословному и плохо читаемому, замусоренному однотипными конструкциями коду. - выполнять rollback или commit внутри процедуры - моветон. Препятствует переиспользованию кода и снижает сопровождаемость. Как сделать rollback правильно - я показал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 17:20 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousПусть процедура содержит секцию обработки исключительных ситуаций и завершается без exception. Это означает, что процедура завершилась УСПЕШНО, что бы это ни значило. У автора, как оказалось, другое мнение, он расчитывает на RC. Отчасти такая реализация тоже имеет место. Наример, комбинация входных параметров A() неправильная. Причем RC=-1 и RC=-2 могут означать две различных ситуации с последующей реакцией в вызывающем коде. Оракл не стесняется использовать RC :) Задача была простая - вызвать 2 процедуры последовательно в одной транзакции с анализом RC. Для начала я бы их переделал в функции, раз уж RC, либо параметры INOUT прописал бы с последующим анализом в вызывающем коде. С чем безоговорочно согласен, так это с тем, что коммитить/ролбечить транзакции нужно на уровне бизнес логики (в общем случае) а не на уровне БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 18:43 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
AserYZ, Да вы правы, но увы есть пакет, в нем 2 процедуры, и ТЗ в одной транзакции выполнить их, и после успешного завершения обоих выполнить коммит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 19:13 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Alex2019ТЗ в одной транзакции выполнить их, и после успешного завершения обоих выполнить коммит. Так это тебе не сюда, а в раздел, посвящённый языку программирования в курсе которого эта лабораторная. Ибо управление транзакциями идёт из клиентского приложения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 19:18 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Выполнить именно на PL SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 19:22 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Alex2019Выполнить именно на PL SQL. Тогда читай PL/SQL User Guide and Reference начиная с "COMMIT Statement". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 19:50 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнAlex2019, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. я же утром еще запостил. Вот и весь код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2019, 20:34 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Кроик СемёнКроик Семён[src plsql] PRAGMA AUTONOMOUS_TRANSACTION; я же утром еще запостил Семен, заканчивайте уже плостить ерунду по утрам :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 00:07 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousСемен, заканчивайте уже плостить ерунду по утрам :)Ручник, он и в африке ручник :| ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 07:48 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous Код: plsql 1. Без использования групповых символов или escape like тут явно неуместный оператор, разве нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 11:53 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
DKbrulike тут явно неуместный оператор, разве нет? По мне так это "явно неуместное замечание". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 15:49 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous, В таком случае, прошу Вас меня искренне извинить, просто Ваши посты читаю, как мантру и стараюсь почерпнуть для себя что-то новое. А иногда в жизни даже на самые простые вещи бывает порой самое неожиданное объяснение. Поэтому я решил уточнить, может тут есть скрытый смысл, который мне, в силу ограниченного мышления, постичь не дано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 16:56 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
DKbruнеожиданное объяснениеЕсли сравниваешь строковое и числовое поле на равенство, like написать короче, чем to_char()=. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 17:16 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
DKbruпосты читаю, как мантру Вот это зря. Не сотвори себе кумира (с) DKbru и стараюсь почерпнуть для себя что-то новое. Применительно к вопросу - Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Применительно к неуместности замечания - в данной ветке это вопрос, не имеющий отношения к обсуждаемой проблеме, или оффтопик. И не просто оффтопик, а попытка увести обсуждение в дальние дали. ...вот как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 17:22 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. интересно на что он еще может заменить? напр a like '123%' substr(a,1,3)='123'? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 18:40 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Staxинтересно на что он еще может заменить? напр a like '123%' substr(a,1,3)='123'? ..... stax Это как раз врядли потому как по like умеет index range scan а по substr не умеет (на обычном b-tree) Regards Maxim ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 18:51 |
|
||
|
Вызов двух процедур в одной транзакции.
|
|||
|---|---|---|---|
|
#18+
Maxim DemenkoStaxинтересно на что он еще может заменить? напр a like '123%' substr(a,1,3)='123'? ..... stax Это как раз врядли потому как по like умеет index range scan а по substr не умеет (на обычном b-tree) Regards Maxim я ето (like умеет index range scan) знаю, и поетому активно пользовался substr уточним - поле неиндексировано ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2019, 18:54 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39762528&tid=1882899]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 479ms |

| 0 / 0 |
