1案例客户想通过alter table def.d read only;的方式停表然后expdp迁移走部分表。语句找到sid/serial#SELECT s.sid, s.serial#,s.usernameFROM v$transaction t, v$session s,v$lock lWHERE t.status ACTIVE AND t.addrs.TADDR and l.sids.sid and l.id1 IN (SELECT OBJECT_ID FROM dba_objects WHERE object_name D and OWNERDEF);更简单不用v$transactionSELECT s.sid, s.serial#,s.usernameFROM v$session s,v$lock lWHERE l.sids.sid and l.id1 IN (SELECT OBJECT_ID FROM dba_objects WHERE object_name D and OWNERDEF);杀光即可。alter system kill session 1147,25 immediate;拼接语句普通版set linesize 300col INST_ID for 99999col OBJECT_NAME for a25col kill for a60select l.INST_ID,o.OBJECT_NAME,gs.SID,gs.SERIAL#,alter system kill session || gs.SID || , || gs.SERIAL# || , ||gs.INST_ID || immediate; killfrom gv$LOCKED_OBJECT l, dba_objects o, gv$session gswhere l.OBJECT_ID o.OBJECT_IDand o.OBJECT_NAME D and o.OWNERDEFand l.SESSION_ID gs.SID and l.INST_IDgs.INST_ID;互动输入版本set linesize 300col INST_ID for 99999col OBJECT_NAME for a25col kill for a60select l.INST_ID,o.OBJECT_NAME,gs.SID,gs.SERIAL#,alter system kill session || gs.SID || , || gs.SERIAL# || , ||gs.INST_ID || immediate; killfrom gv$LOCKED_OBJECT l, dba_objects o, gv$session gswhere l.OBJECT_ID o.OBJECT_IDand o.OBJECT_NAME upper(table) and o.OWNERupper(owner)and l.SESSION_ID gs.SID and l.INST_IDgs.INST_ID;