1.找出谁锁定了什么 Select v2.username,v2.sid,v2.serial#,v2.logon_time From v$locked_object v1,v$session v2 Where v1.session_id=v2.sid order by v2.logon_time2.结束掉这个session alter system kill session 'sid,serial#';
查了一下 关于select/insert/delete/update ... for update ---------- 该语句会自动获取行级锁,在你SELECT的记录中放置排他锁,只是符合SELECT条件的行才被锁定,在你未释放锁(COMMIT or ROLLBACK)之前其它用户不能进行更新操作,可以执行更新之外的其它操作。
你有管理者权限的话,通过客户端,一样可以做到的。
Select v2.username,v2.sid,v2.serial#,v2.logon_time From v$locked_object v1,v$session v2 Where v1.session_id=v2.sid order by v2.logon_time2.结束掉这个session
alter system kill session 'sid,serial#';
----------
该语句会自动获取行级锁,在你SELECT的记录中放置排他锁,只是符合SELECT条件的行才被锁定,在你未释放锁(COMMIT or ROLLBACK)之前其它用户不能进行更新操作,可以执行更新之外的其它操作。
查查原因再说.
赫赫。
重启Oracle服务,有点狠。赫赫。
客户端退出sql*plus ,oracle 会隐式地执行commit;
当然,你把自己的sql*plus的autocommit设置为true,执行一些UPDATE,DELETE等语句的时候,会自动commit.客户端中断连接,在使用连接池的时候,不会立刻rollback,只有连接池中,这个连接要被释放资源的时候,才会rollback。
用客户端时候,定时手动commit已经成习惯. 呵呵客户端退出也手动一下,不厌其烦,呵呵。 重启Oracle服务?狠,那是会出人命滴。呵呵。
如果没有权限的话 只能杀进程拉
客户 不可能用sqlplus 人家看到的是封装后的界面