随手记下的Oracle数据库技巧

批量给数据库表赋予权限
select 'grant select,update,insert,delete on A.'||t.table_name||' to B;' from dba_tables t where t.owner='A';

执行查询结果,就可以将A的表的权限赋予B。

杀死数据库KILLED状态的进程
select sid,serial#,status,username,program from v$session where sid=848;
SELECT s.username,s.status,
 x.ADDR,x.KSLLAPSC,x.KSLLAPSN,x.KSLLASPO,x.KSLLID1R,x.KSLLRTYP,
 decode(bitand (x.ksuprflg,2),0,null,1)
 FROM x$ksupr x,v$session s
 WHERE s.paddr(+)=x.addr
 and bitand(ksspaflg,1)!=0
 and s.sid= 1000 --sid号;

根据查到的ADDR去V$PROCESS视图查询
 SELECT SPID,PID FROM V$PROCESS WHERE ADDR='000000026F646D98';

查到的SPID就是系统进程ID,去系统中kill -9 spid就可以了。

你可能感兴趣的:(oracle,sql)