解决方案 »
- pl/sql 编程for 循环问题!!
- 求关于oracle存储过程的文档!
- 求批量update 赋值语句,oracle数据库中的两个表之间!
- 心有不甘,正常手继辞职后被公司砍了一把
- Oracle中,VARCHAR2类型的变量如何可以比较大小么?可以选定一个范围么?
- 初学oracle,请指教!
- 求助:如何用oracle编写一个返回多条记录的存储过程,并在asp程序中调用
- oracle新手提问之……
- 求助多表查询SQL语句
- 在戴尔服务器上装orale Linux 6.4,然后再装oracle 11g R2,
- 表空间高水位 resize问题
- Oracle数据库Client版和Server版有什么不同
[ WITH HOLD ]
IN { SHARE | EXCLUSIVE } MODE参数 table-name 表必须是基表,而不是视图。因为临时表数据是当前连接的本地数据,所以锁定全局临时表或局部临时表都无效。WITH HOLD 子句 如果指定该子句,锁一直保持到连接结束时。如果没有指定该子句,则提交或回退当前事务时将释放锁。SHARE 模式 禁止其它事务修改表,但允许它们读取表。在该模式下,只要没有其它的事务锁定所修改的行,就可以间接地或显式地使用 LOCK TABLE 更改表中的数据。EXCLUSIVE 模式 禁止其它事务访问表。任何其它事务都不能对表执行查询、任何更新或任何其它操作。如果用 LOCK TABLE t IN EXCLUSIVE MODE 排它性地锁定表 t,则服务器的缺省行为是不获取 t 的行锁定。将 SUBSUME_ROW_LOCKS 选项设置为 OFF 可以禁用此行为。
begin
for i in reverse 1..1000000 loop
insert into test1 values(i,'name'||i);
end loop;
commit;
end;
能针对 这个帮我写个demo不? 感激不尽呀。。
LOCK TABLE test1 IN EXCLUSIVE MODE;--锁定test1,不允许其他事务查询或修改
--LOCK TABLE test1 IN SHARE MODE;--锁定test1,不允许其他事务修改,但是可以查询
--上面锁定模式按照需求任选其一
for i in reverse 1..1000000 loop
insert into test1 values(i,'name'||i);
end loop;
commit;--锁表时未添加WITH HOLD,提交就可以自动释放锁
end;