oracle DBMS_LOCK.SLEEP()的使用

create or replace procedure times is
ii positive:=1;
begin
loop
dbms_lock.sleep(1);
dbms_output.put_line(ii||‘ ‘||to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘));
ii:=ii+1;
exit when ii>10;
end loop;
end;
/

结果:

SQL> exec times;
1 2016-10-08 11:26:57
2 2016-10-08 11:26:58
3 2016-10-08 11:26:59
4 2016-10-08 11:27:00
5 2016-10-08 11:27:01
6 2016-10-08 11:27:02
7 2016-10-08 11:27:03
8 2016-10-08 11:27:04
9 2016-10-08 11:27:05
10 2016-10-08 11:27:06

PL/SQL 过程已成功完成。

时间: 2024-10-29 00:01:11

oracle DBMS_LOCK.SLEEP()的使用的相关文章

Oracle dbms_lock.sleep()存储过程使用技巧-场景-分析-实例

<Oracle dbms_lock.sleep()存储过程使用技巧>-场景-分析-实例 摘要:今天是2014年3月10日,北京,雾霾,下午组织相关部门开会.会议的结尾一名开发工程师找到了我,向我请教了一下“如何延迟SQL语句的执行时间”为了是测试项目的一个功能输出.在我的建议下使用了dbms_lock.sleep()存储过程来完成了这个实现.我在会议之后体会到Oracle的package的应用场景非常重要.往往新入职场的DBA技术不错,会的东西也不少,就是不太了解什么技术应用在什么场景下,使之

oracle 使用 dbms_lock.sleep暂停存储过程执行

grant execute on dbms_lock to USERNAME; ? dbms_lock.sleep(time)参数单位为秒 ? create or replace procedure initdata is num number := 0; begin ? for i in 1 .. 500 loop ? num := num + 1; if num >= 1000 then dbms_lock.sleep(5); num := 0; dbms_output.put_line('

Oracle之DBMS_LOCK包用法详解

概述与背景 某些并发程序,在高并发的情况下,必须控制好并发请求的运行时间和次序,来保证处理数据的正确性和完整性.对于并发请求的并发控制,EBS系统可以通过Concurrent Program定义界面的Incompatibilities功能配置实现.但是Incompatibilities功能存在其局限性,它只能把整个并发请求作为一个整体来判断,并不能细化到并发请求的请求参数.而某些并发程序,只需要对其中某几个参数做并发控制,例如时间段,OU等.对于这种业务需求,可以使用标准包DBMS_LOCK,把

Oracle 存储过程 延迟执行 DBMS_LOCK.SLEEP(60);

--测试代码: declare -- Local variables here i integer; begin -- Test statements here dbms_output.put_line(to_char(sysdate,'yyyy-MM-dd HH24:MI:SS')); DBMS_LOCK.SLEEP(60);--休眠60秒 dbms_output.put_line(to_char(sysdate,'yyyy-MM-dd HH24:MI:SS')); end; --输出结果:

oracle存储过程实例

oracle存储过程实例 分类: 数据(仓)库及处理 2010-05-03 17:15 1055人阅读 评论(2)收藏 举报 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比,存储过程有非常多长处,详细归纳例如以下: * 存储过程和函数以命名的数据库对象形式存储于数据库其中.存储在数据库中的长处是非

oracle查询转换_inlist转换

oracle的optimizer会对一些sql语句进行查询转换,比如: 合并视图 子查询非嵌套化 inlist转换 下面讲讲遇到的in list转化优化的案例: create table test( col1 varchar2(12) col2 number ext varchar2(4000) ); create index test_ind on test(user_id, col2); create sequence seq_test cache 200; 第一步:准备一些测试数据(10个

oracle热点表online rename

对于在线的繁忙业务表的任何操作都可能带来意想不到的风险.一张业务表,对partition key进行升位,其步骤是: rename原表 新建临时表 交换分区到临时表 升位临时表的字段的长度 交换临时表到第二张临时表 rename第二种临时表为业务表 整个的操作过程如果顺利,预计在10s左右,如果放在文件中,速度会很快.下面模拟繁忙表进行测试: #!/bin/sh . /home/oracle/.bash_profile sqlplus -S /nolog<<EOF conn test/test

oracle 存储过程详细介绍(创建,删除存储过程,参数传递等)

这篇文章主要介绍了oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包等相关资料,需要的朋友可以参考下 oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命名的方式存储于数据库中的.和PL/SQL程序相比,存储

Oracle单实例情况下的library cache pin的问题模拟与问题分析

參考自: WAITEVENT: "library cache pin" Reference Note (文档 ID 34579.1) How to Find the Blocker of the 'library cache pin' in a RAC environment? (文档 ID 780514.1) 本机环境:Oracle 10.2.0.5 x86-64bit for RHEL5.8 x86-64bit 第一个session: [[email protected] ~]$