读书人

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

发布时间: 2012-11-07 09:56:10 作者: rapoo

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 ;

读书人网 >oracle

热点推荐