首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解锁Oracle表

解锁Oracle表
EN

Stack Overflow用户
提问于 2015-02-23 14:12:03
回答 2查看 49.4K关注 0票数 6

解锁oracle表有哪些不同的技术?

我试过的。

  1. 获取被锁定的表的对象ID:

SELECT object_id FROM dba_objects WHERE object_NAME=‘您的表名’;

  1. 获取此ID的SID值:

SELECT sid FROM v$lock WHERE id1=OBJECT ID FROM STEP1

  1. 获取以下SID的会话值:

SELECT sid,SELECT serial# from v$session where sid in (来自STEP2的sid的逗号分隔列表)

  1. 终止导致锁定的会话:

ALTER SYSTEM KILL SESSION (SID,SERIAL#)

配对第3步中的值,例如ALTER SYSTEM KILL SESSION '231,23454'

但问题是,我有很多表已经被锁定,有没有其他技术可以解锁这些表。

我使用的是SQLDeveloper,有没有解锁的直接选项?

EN

回答 2

Stack Overflow用户

发布于 2019-06-13 05:34:01

选项1:

其中一个选项是回滚锁定的SQL语句。对于一个实例,

代码语言:javascript
复制
lock table table1 in exclusive mode;  -- is what you should've used to lock the table.

解锁:回滚;

选项2:

查找用户名和sid的步骤:

代码语言:javascript
复制
select * from v$locked_object;

要使用sid查找serial#:

代码语言:javascript
复制
select * from v$session where sid= put the sid you found on v$locked_object;

要终止会话,请执行以下操作:

代码语言:javascript
复制
alter system kill session 'sid, serial#'; -- Execute this command as sysdba as normal user won't have privilege. 
票数 9
EN

Stack Overflow用户

发布于 2021-08-05 13:59:17

您也可以尝试仅执行

代码语言:javascript
复制
COMMIT;

代码语言:javascript
复制
ROLLBACK;

在这次会议上。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28667821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档