话说,这是一个来自周四加班夜晚的故事,当时我的PL/SQL卡住了,每次查询这个表时都会卡住。
经过一番研究,我找到了解决办法,分为三个步骤:
- 使用以下查询语句获取正在执行的SQL查询的SID和OracleID:
sql
SELECT b.sid AS oracleID,
b.username AS 用户名,
b.serial#,
paddr,
sql_text AS 正在执行的SQL,
b.machine AS 计算机名称
FROM v$process a, v$session b, v$sqlarea c
WHERE a.addr = b.paddr
AND b.sql_hash_value = c.hash_value;
- 使用以下语句删除该进程:
sql
ALTER SYSTEM KILL SESSION 'SID, OracleID' IMMEDIATE;
注意,一定要带上IMMEDIATE
关键字,不知道为什么,但带上它可以快速删除进程。
- 最后,使用以下语句删除视图:
sql
DROP VIEW 视图名称;
经过以上三个步骤,问题就解决了。