|
|
|
Селективная процедура, меняющая данные
|
|||
|---|---|---|---|
|
#18+
Я правильно понимаю, что если у меня есть селективная процедура, внутри которой меняются данные, и возвращается результат (код), выполняющаяся в "короткой" пишущей транзакции, то мне надо: 1. Выполнить её (без автокоммита) типа как SELECT ... FROM MY_STOREDPROC 2. Считать результат 3. Закоммитить (в результате чего датасет закроется, и код уже не получишь)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 17:42:41 |
|
||
|
Селективная процедура, меняющая данные
|
|||
|---|---|---|---|
|
#18+
Kotъ-Begemotъ, зачем SELECT делать старт транзакции Код: sql 1. 2. получаем код делаем коммит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 17:56:07 |
|
||
|
Селективная процедура, меняющая данные
|
|||
|---|---|---|---|
|
#18+
Kotъ-Begemotъ, по п.3 есть Commit, а есть и CommitRetaining. Зачем еще раз получать результат после п.2? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 17:57:41 |
|
||
|
Селективная процедура, меняющая данные
|
|||
|---|---|---|---|
|
#18+
Kotъ-Begemotъ, может я не понял чего. Если процедура возвращает всегда 1 строку, то SELECT не нужен достаточно EXECUTE PROCEDURE. Если несколько, то без SELECT конечно не обойтись, но тут ожидает засада, т.к. если результат окажется не дофетченным, то и все модификации не пройдут. Во втором случае выкрутиться конечно можно если все результаты предварительно сложить в GTT, а потом делать из неё SELECT ... INTO ... SUSPEND; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 18:06:29 |
|
||
|
Селективная процедура, меняющая данные
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, спасибо! Действительно EXECUTE с RETURNING_VALUES то, что нужно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 18:49:31 |
|
||
|
Селективная процедура, меняющая данные
|
|||
|---|---|---|---|
|
#18+
Я просто, честно говоря, про эту опцию у EXECUTE и забыл совсем. Всё как-то больше были или чисто селективные процедуры, не модифицирующие данные, либо модифицирующие, но без вывода за ненадобностью, вот и "отстал от жизни" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2014, 19:40:24 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38546421&tid=1563924]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
182ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 184ms |
| total: | 416ms |

| 0 / 0 |
