Oracle では、SELECT ステートメントを使用して、ロックされたテーブルをクエリできます。このステートメントは、単にデータ情報をクエリするために使用されます。構文は、「select*from v$locked_object a,dba_objects b where b.object_id=」です。 a.object_id" 。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
1. テーブルがロックされている理由をクエリします
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. ロックされたテーブルをクエリします
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id
3 .どのセッションが原因かを確認します
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time
4.対応するプロセスを強制終了してロックを解除します
alter system kill session'135,397'
--135はsid、397はシリアル
#注: このユーザーDBA 権限が必要です。そうでない場合は、テーブルとビューが見つからないというメッセージが表示されます。
推奨チュートリアル: "Oracle Video Tutorial"
以上がOracle のロックされたテーブルをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。