问题描述:在PL SQL中能够select * from products,但是不能select * from products for update;
问题产生的原因是session被锁住了,导致不能修改记录。
A说 (16:05):
B,问一下,我在pl sql中能select 但是不能select 后加上for update,这个是由于 记录锁着了吧
A 说 (16:05):
怎么样解决这个问题啊,我都不能修改了。
B 说 (16:05):
恩
A说 (16:06):
怎么样解决这个问题呢?
B说 (16:07):
select SESSION_ID from v$locked_object l join dba_objects o on (l.OBJECT_ID=o.object_id) where o.object_name='table_name'
B 说 (16:07):
找到session id
B 说 (16:08):
select * from v$session where sid=?
B 说 (16:08):
查看这个session的情况
B 说 (16:08):
如果这个session 不是服务器的session
B 说 (16:09):
alter system kill session (sid,serial)
B 说 (16:09):
小心操作哦, 杀掉服务器的session就完蛋了
A 说 (16:09):
哦。。。。
A 说 (16:10):
完蛋是指什么啊?会把服务器搞停了?
B 说 (16:10):
就是用户可能会报错吧
B 说 (16:11):
你看看这个session的详细信息就知道是不是web应用的session了
A 说 (16:11):
select SESSION_ID from v$locked_object l join dba_objects o on (l.OBJECT_ID=o.object_id) where o.object_name='auctions'
A 说 (16:11):
没有查出记录啊
B 说 (16:11):
大写 AUCTIONS
A 说 (16:12):
select * from v$session where sid=308
A说 (16:12):
那怎么样知道是不是web应用的session呢?
A 说 (16:13):
哦,看到了,应该是我的pl sql客户端的
B 说 (16:15):
你看看session的OSUSER,MACHINE
B 说 (16:15):
PROGRAM
B 说 (16:15):
这些字段
B 说 (16:15):
我想可能是你自己的某个session 或者是他们在整理拍品
A 说 (16:20):
alter system kill session (308,7242)
ORA-00026: missing or invalid session ID
308是sid,7242是serial#字段的值。
我这上面有哪里写错了吗?
A说 (16:22):
哦,B, 是这样啊: alter system kill session '308,7242';
分享到:
相关推荐
### 数据库Oracle锁:FOR UPDATE OF与FOR UPDATE的区别 在Oracle数据库中,为了确保数据的一致性和准确性,尤其是在多用户环境中进行并发操作时,锁机制是必不可少的一部分。本文将详细介绍`FOR UPDATE`与`FOR ...
标题和描述均聚焦于Oracle数据库中`FOR UPDATE`与`FOR UPDATE NOWAIT`两种锁定机制的区别,这在并发控制和事务处理中具有重要的意义。在深入解析这两种指令之前,我们先来简要回顾一下锁定机制的基本概念。 在...
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序...
API For update open ECO
windows update拒绝访问 解决办法
FOR UPDATE`的工作原理以及InnoDB存储引擎的行锁机制对于识别和解决死锁至关重要。在多事务环境中,应谨慎设计SQL语句和事务流程,以防止死锁的出现,同时利用事务日志和死锁检测功能进行故障排查。
1.安装本更新之前,强烈建议您阅读 Visual Studio 2005 Service Pack 1 Update for Windows Vista 发行说明。 2.如果您的计算机安装了 Visual Studio 2005 Service Pack 1 Update for Windows Vista Beta,请务必...
总之,“Visual C++ Redistributable for Visual Studio 2012 Update 4”是解决WAMP服务器安装过程中因缺失运行时库而报错的关键。通过安装这个组件,我们可以确保所有依赖于Visual Studio 2012编译的C++库的程序都...
在使用Vue框架开发时,在函数中改变了页面中的某个值,在函数中查看是修改成功了,但在页面中没有及时刷新改变后的值; 解决: 运用 this.$forceUpdate()强制刷新 代码案例 <Select v-model=carSafeLine....
forupdate 例子: ModelMember::find()->where([ModelMember::TABLE_USER.'.card'=>$card])->andWhere(['!=',ModelMember::TABLE_USER.'.status', MemberDataDao::ATTR_STATUS_DELETE])->forUpdate()->one();
总的来说,`wsl-update`是解决Windows中Ubuntu子系统问题的一个有力助手,它简化了WSL的更新和维护流程,为Windows用户提供了更好的Linux体验。通过理解`wsl-update`的用途和使用方法,开发者可以更好地应对WSL可能...
### MySQL中“You can’t specify target table for update in FROM clause”错误解决方法 在MySQL数据库管理过程中,遇到SQL语法错误是家常便饭,其中一种较为常见的错误是“You can’t specify target table for ...
docker容器内安装软件时很慢的解决办法,用网易加速和阿里云加速提升软件安装的速度,安装ps,vi,telnet,netstat等命令,亲测!
3. 使用Redis的分布式锁或者Zookeeper虽然也能解决并发问题,但可能会增加系统的复杂性。"for update"则提供了一个更简洁的数据库层面的解决方案。 **保证线程安全的新方法:For Update** For Update是一种行级锁...
sqlalchemy 对于行级锁有两种实现方式,with_lockmode(self, mode): 和 with_for_update(self, read=False, nowait=False, of=None),前者在sqlalchemy 0.9.0 被废弃,用后者代替。所以我们使用with_for_update ! 看...
Ubuntu18.04sudoaptupdate无法解析域名的解决方案.docx
在实际开发中,我们经常会遇到需要根据特定条件对数据进行更新的情况,MyBatisPlus的条件构造器就是为了解决这个问题而设计的。本文将详细介绍如何使用MyBatisPlus的条件构造器进行带条件的更新操作。 首先,我们...
这个错误表明在`UPDATE`语句中不能直接引用目标表进行查询。为了解决这个问题,可以采用自连接、临时表或存储过程等替代方法。在上述案例中,通过自连接的方式成功地解决了问题,允许我们按照预期更新数据,而不会...