oracle - plsql sleep 不使用 dbms_lock.sleep/DBMS_SESSION.sleep
问题描述
有没有人有任何 oracle sql 可以让程序等待 10 秒而不使用 dbms_lock.sleep/DBMS_SESSION.sleep 函数。
在 UAT 实例中,我想每 10 秒运行一次更新语句,并且我当前的数据库角色没有使用 dbms_lock.sleep/DBMS_SESSION.sleep 的特权
解决方案
我能想到的替代方法之一是使用类中的方法sleep
,您可以通过提供一个简单的包装程序轻松使用该方法,如下所示:Java
Thread
PL/SQL
程序:
CREATE OR REPLACE PROCEDURE sleep (
p_milli_seconds IN NUMBER
) AS LANGUAGE JAVA NAME 'java.lang.Thread.sleep(long)';
执行
BEGIN
DBMS_OUTPUT.PUT_LINE('Start ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
SLEEP(5 * 1000); -- Resting for 5 sec
DBMS_OUTPUT.PUT_LINE('End ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
END;
/
输出:
Start 2020-03-25 12:57:24
End 2020-03-25 12:57:36
推荐阅读
- javascript - Firebase 实时数据库 - orderByChild 不返回任何结果
- python - Scrapy中如何下载根据Cookies url生成的文件
- google-cloud-platform - 启动脚本 yum 安装失败,并显示“无法验证 google-cloud-sdk 的签名”
- c# - 为 UWP MediaPlayerElement 禁用/启用直通
- javascript - 使用客户端脚本控制 SAPUI5 应用程序
- c++ - 关于opengl画矩形的问题
- python - __add__ 支持不同类型的添加?
- c++ - 如何在不破坏客户端代码的情况下优化 C++11 函数内返回向量的内存分配
- asp.net-mvc - 链接中的 URL 将 & 转换为 & 使 URL 无效
- python - 在 selenium 中使用 python 循环