首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

ORACLE锁定多行的操作,该怎么处理

2012-11-07 
ORACLE锁定多行的操作ORACLE锁定多行的操作我在操作前锁定 性别为男的所有列,在存储过程中不知怎么写我用

ORACLE锁定多行的操作
ORACLE锁定多行的操作 我在操作前锁定 性别为男的所有列,在存储过程中不知怎么写
 我用 SELECT SEX INTO SEX1 FROM MAN WHERE SEX='男' FOR UPDATE NOWAIT; 
说结果为多行错误 用 SELECT COUNT(*) 说不让此操作

[解决办法]
1.返回结果多行,存储中当然不能SELECT SEX INTO SEX1 FROM MAN WHERE SEX='男' 这么写。
2. SELECT COUNT(*) 和 for update 是不能一起用的
3.你在操作前锁定表是想做什么操作?
[解决办法]
直接锁全表,加TX锁的表级别锁

Lock xxx in Exclusive mode
[解决办法]
SELECT * FROM MAN WHERE SEX='男' for update
[解决办法]
create or replace procedure tt is
cursor cur is SELECT SEX FROM MAN WHERE SEX='男' FOR UPDATE NOWAIT;
begin
for rec in cur loop 
-- rec.SEX 
end loop ;
end ;

热点排行