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 ;