Od czasu do czasu ktoś napotyka coś, co istnieje od zawsze, ale jest dla niego nowym doświadczeniem. Właśnie dzisiaj po raz pierwszy w karierze trafiłem na błąd ORA-1097. Byłem w testowej bazie danych i musiałem ją wyłączyć.
ZamknięcieSQL> shutdown immediate ORA-01097: cannot shutdown while in a transaction - commit or rollback firstRozwiązanie jest oczywiste. Zatwierdź transakcję lub wycofaj ją i mogę kontynuować.
SQL> commit; Commit complete. SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.Przy tak niskiej liczbie błędów musiało to istnieć od bardzo dawna. Na początku zaskoczył mnie błąd. Co masz na myśli mówiąc, że nie mogę zamknąć mojej instancji? Następnie przeczytałem komunikat o błędzie i zdałem sobie sprawę, co się dzieje. Myślę, że to ma sens. Oracle chce wiedzieć, co zrobić z Twoją transakcją, zanim będzie można rozpocząć zamknięcie. Jeśli wykonasz ZAMKNIĘCIE PRZERWIJ, Oracle nie przekaże ci tej wiadomości, ale wycofa transakcję po odzyskaniu instancji. Morał z tej historii jest taki, że nawet jeśli jesteś w pobliżu od dłuższego czasu i dużo widziałeś, nie widziałeś tego wszystko.