Der Grund, warum Oracle die Tabelle sperrt:
1. Überprüfen Sie die Sperrtabellensituation im aktuellen System in ORACLE
select * from v$locked_object
Sie können die Abfrage
v$locked_object
übergeben, um sid
und objectid
,
zu erhalten, und dann die Tabellen sid
und v$session链
verwenden, um abzufragen, wo die Tabelle gesperrt ist , verwenden Sie
. Das Feld objectid
in v$session ist mit dem Feld dba_objects
von id
verknüpft und
fragt den detaillierten Status der Sperrtabelle ab.
Fragen Sie die SQL wie folgt ab:
select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess, v$process p where ao.object_id = lo.object_id and lo.session_id = sess.sid;
Fragen Sie ab, welche SQL die Tabellensperre verursacht hat. Die SQL lautet wie folgt:
select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#, l.os_user_name, s.machine, s.terminal, a.sql_text, a.action from v$sqlarea a, v$session s, v$locked_object l where l.session_id = s.sid and s.prev_sql_addr = a.address order by sid, s.serial#;
2. ORACLE-Entsperrmethode
alter system kill session 'sid,serial#';
spid gesperrte Prozessnummer
serial# v$session 这个视图中取出来的
Empfohlenes Tutorial: „Oracle Tutorial“
Das obige ist der detaillierte Inhalt vonGründe, warum Oracle die Tabelle sperrt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!