От време на време човек се натъква на нещо, което съществува завинаги, но е ново преживяване за него. Точно днес попаднах на грешката ORA-1097 за първи път в кариерата си. Бях в тестова база данни и трябваше да я изключа.
SQL> shutdown immediate ORA-01097: cannot shutdown while in a transaction - commit or rollback firstРешението е очевидно. Или попълнете транзакцията ми, или я отменете и след това мога да продължа.
SQL> commit; Commit complete. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.С толкова нисък номер на грешка, това трябва да е съществувало от много дълго време. В началото бях изненадан от грешката. Какво искаш да кажеш, че не мога да изключа моята инстанция? Тогава прочетох съобщението за грешка и разбрах какво се случва. Предполагам, че това има смисъл. Oracle иска да знае какво да прави с вашата транзакция, преди спирането да започне. Ако направите SHUTDOWN ABORT, Oracle няма да ви даде това съобщение, но ще отмени транзакцията при възстановяване на инстанция. Моралът на историята е, дори ако сте били наоколо дълго време и сте видели много, вие не сте го виждали всичко.