|
|
|
связка transaction+exception
|
|||
|---|---|---|---|
|
#18+
Откатывает ли возникновение исключения вставленные записи? В третьем инсерте имеет деление на ноль, но до этого по идее должны были вставиться 1 и 2. Но остается только 2. Почему откатывается вставка числа 2? Где прочитать про эту "особенность"? Заранее спасибо. SQL> create table t2 (col number); Table created. SQL> begin insert into t2 values(1); end; / PL/SQL procedure successfully completed. SQL> begin insert into t2 values(2); insert into t2 values(1/0); end; / begin * ERROR at line 1: ORA-01476: divisor is equal to zero ORA-06512: at line 3 SQL> select * from t2; COL ---------- 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2003, 16:24 |
|
||
|
связка transaction+exception
|
|||
|---|---|---|---|
|
#18+
Скорее всего: PL/SQL User's Guide and Reference Overview of Transaction Processing in PL/SQL http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/06_ora.htm#1990 Действительно, при возникновении exception'а оракл автоматически откатывает не все, а до некоей "implicit savepoint", в приводимой ссылке фраза про нее встречается сплошь и рядом. Самая, на мой взгляд, вразумляющая фраза приведена здесь: http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/06_ora.htm#2122 Если думать о pl/sql-блоке begin..end как о "subprogram", то вроде как все встает на свои места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2003, 16:41 |
|
||
|
связка transaction+exception
|
|||
|---|---|---|---|
|
#18+
если комита не было, то 1 будет виден тол'ко в данной сессии. Какой автокомит моде? ЙЙ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2003, 19:30 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32087886&tid=1992262]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 473ms |

| 0 / 0 |
