数据库
Oracle
执行如下语句
ALTER TABLE SCHEME_NAME.TABLE_NAME MODIFY COLUME_NAME VARCHAR2(200);
报错
资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
报错原因
其他Session已经对目标表做了操作,且未提交操作,导致锁表,新的Session无法再对表进行DDL操作。
按照如下步骤关闭原会话
--查询被锁的会话ID
select session_id from v$locked_object;
--查询结果:SESSION_ID-------33
--查询上面会话的详细信息:
SELECT sid, serial#, username, osuser FROM v$session where sid = 9;
--查询结果:serial#------435
--将上面锁定的会话关闭:
ALTER SYSTEM KILL SESSION '33,435';
再执行原来的语句
ALTER TABLE SCHEME_NAME.TABLE_NAME MODIFY COLUME_NAME VARCHAR2(200);