使用plsql修改数据,报ORA-00054:资源正忙,但指定以NOWAIT方式获取资源,或者超时失效

java小菜鸟一枚,记得面试官曾经问过我一个问题,就是你使用sql语句,除了写过增删改查,还写过什么别的命令没有,当时真的想不起来了,所以我打算记录一下,面试之前看一看,有备无患。

之前一直用的mysql,没怎么使用过oracle,这次公司的项目使用的oracle,觉得还是mysql方便啊,哈哈哈哈

之前就报过这个问题,现在查了一下解决办法,大概就是这样的

1 。等待其他资源回话释放,在创建语句中添加online,回话释放资源后,该语句会自动执行。这种方式是采用堵塞方式,不报错。

这个不适合我的语句,我的语句是

一个更新语句,不能使用这种方式。

2 。找出占用的资源并删除。

首先找出被锁的对象,定位哪个回话占用。

select l.session_id,o.owner,o.object_name

from v$locked_object l,dba_objects o

where l.object_id=o.object_id

对比想要创建的索引,定位哪些会话需要被删除

然后找出所有造成锁的索引

最后kill所有占用资源的回话。

命令形式:

alter system kill session ‘sid,serial#‘;

alter system kill session ‘331,4900‘;

重启数据库。

如果数据不重要的话,可以重启数据库回滚所有未提交事务,将资源释放出来

以上是参考的百度经验,自己加了一些实践。

时间: 2024-10-09 00:27:22

使用plsql修改数据,报ORA-00054:资源正忙,但指定以NOWAIT方式获取资源,或者超时失效的相关文章

Oracle中修改表名遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”

Oracle中想修改表名: rename ASSETPORJECT to ASSETPROJECT; --结果提示:ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效. 看来有锁定该表的会话,于是,执行如下查询: SELECT sid, serial#, username, osuser FROM v$session where sid in(select session_id from v$locked_object); --kill掉相关的会话 ALTER

oracle修改表字段名时报错:ORA-00054:资源正忙,但指定以NOWAIT方式获取资源,或者超时失效的问题

打开sql plus select session_id from v$locked_object;查询出oracle锁定的会话ID SELECT sid, serial#, username, osuser FROM v$session where sid = 1; 查询出当前会话数的信息 ALTER SYSTEM KILL SESSION '200,2141'; 杀掉当前会话 注:'200,2141'是:SID和SERIAL字段进行拼接的

ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效ORA-06512: 在 "STG.SAP_SALES_ORDER", line 41

这是有执行的update或者insert造成你目前正在操作的表锁表了 SQL> select session_id from v$locked_object; SESSION_ID----------56 SQL> SELECT sid, serial#, username, osuser FROM v$session where sid = 142; SID SERIAL# USERNAME OSUSER---------- ---------- 56 2088 ghb fy SQL>

oracle错误处理之ORA-00054:资源正忙,要求指定NOWAIT

查询所有会话 select t2.username, t2.sid, t2.serial#, t2.logon_time from v$locked_object t1, v$session t2 where t1.session_id = t2.sid order by t2.logon_time; 强行结束会话 alter system kill session 'sid,serial';

【转】oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT

问题如下: SQL> conn scott/[email protected]_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott ...... SQL> drop table student2; drop table student2 ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效================

oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT

SQL> conn scott/[email protected]_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott ...... SQL> drop table student2;drop table student2ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效========================

Oracle报 ORA-00054资源正忙的解决办法

来源于:http://www.cnblogs.com/loveLearning/p/3625544.html oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT 问题如下: SQL> conn scott/[email protected]_databaseConnected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0Connected as scott ...... SQL> drop ta

ORACLE操作表时”资源正忙,需指定nowait"的解锁方法

ORACLE操作表时”资源正忙,需指定nowait"的解锁方法 问题: 执行 drop table table_name 时,提示”资源正忙,需指定nowait"      由于TB_PROJECT为设置主键造成只能查询而无法修改和删除的问题导致PL/SQL无响应,从而对此表一直处于锁定状态 分析: 表示table_name表由某个用户操作时进行了锁定,必须先解锁才能继续进行操作 解决: 1> 通过此语句查询正在锁定的SESSION_ID: SELECT  SESSION_ID 

ORA-00054:资源正忙,要求指定NOWAIT

--ORA-00054:资源正忙,要求指定NOWAIT-- --以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句-- SELECT sid, serial#, username, osuser FROM v$session WHERE sid IN(SELECT session_id FROM v$locked_object); --杀掉锁-- ALTER SYSTEM KILL SESSION 'sid,serial#'; ALTER SYSTEM KILL SESSION '15