PLSQL 逻辑多线程机制
CREATE OR REPLACE PACKAGE jv_para_pkg IS
PROCEDURE main(i_job_name VARCHAR2,
i_job_action VARCHAR2,
i_job_count NUMBER);
END jv_para_pkg;
/
CREATE OR REPLACE PACKAGE BODY jv_para_pkg IS
-- 释放一个job
PROCEDURE release_one_job(i_job_name VARCHAR2, i_job_action VARCHAR2) IS
BEGIN
dbms_scheduler.create_job(job_name => i_job_name,
job_type => 'PLSQL_BLOCK',
job_action => i_job_action,
enabled => TRUE);
END;
--清除job运行历史
PROCEDURE purge_job_log(i_job_name_prefix VARCHAR2) IS
CURSOR job_cur IS
SELECT DISTINCT job_name
FROM user_scheduler_job_run_details
WHERE job_name LIKE i_job_name_prefix;
BEGIN
FOR job_rec IN job_cur LOOP
dbms_scheduler.purge_log(log_history => 1,
which_log => 'JOB_AND_WINDOW_LOG',
job_name => job_rec.job_name);
END LOOP;
END;
PROCEDURE main(i_job_name VARCHAR2,
i_job_action VARCHAR2,
i_job_count NUMBER) IS
v_count NUMBER;
BEGIN
dbms_output.put_line(i_job_action);
WHILE TRUE LOOP
FOR i IN 1 .. i_job_count LOOP
SELECT COUNT(1)
INTO v_count
FROM user_scheduler_jobs t
WHERE t.job_name = i_job_name || '_' || i;
IF v_count = 0 THEN
release_one_job(i_job_name => i_job_name || '_' || i,
i_job_action => i_job_action);
-- 找到即退出
RETURN;
END IF;
END LOOP;
-- 等待
dbms_lock.sleep(1);
END LOOP;
--清除job运行历史
purge_job_log(i_job_name || '_%');
END;
END jv_para_pkg;
/
PLSQL 逻辑多线程机制的更多相关文章
- PLSQL 逻辑多线程
PROCEDURE get_sheetid(i_topic IN VARCHAR2, o_newsheetid OUT VARCHAR2) IS PRAGMA AUTONOMOUS_TRANSA ...
- Java的多线程机制系列:不得不提的volatile及指令重排序(happen-before)
一.不得不提的volatile volatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它:我们在JDK及开源框架中随处可见这个关键字,但并发专 ...
- Java的多线程机制系列:(四)不得不提的volatile及指令重排序(happen-before)
一.不得不提的volatile volatile是个很老的关键字,几乎伴随着JDK的诞生而诞生,我们都知道这个关键字,但又不太清楚什么时候会使用它:我们在JDK及开源框架中随处可见这个关键字,但并发专 ...
- Java的多线程机制系列:(三)synchronized的同步原理
synchronized关键字是JDK5之实现锁(包括互斥性和可见性)的唯一途径(volatile关键字能保证可见性,但不能保证互斥性,详细参见后文关于vloatile的详述章节),其在字节码上编译为 ...
- 《Exploring in UE4》多线程机制详解[原理分析]
转自:https://zhuanlan.zhihu.com/c_164452593 目录一.概述二."标准"多线程三.AsyncTask系统3.1 FQueuedThreadPoo ...
- Java的多线程机制系列:(一)总述及基础概念
前言 这一系列多线程的文章,一方面是个人对Java现有的多线程机制的学习和记录,另一方面是希望能给不熟悉Java多线程机制.或有一定基础但理解还不够深的读者一个比较全面的介绍,旨在使读者对Java的多 ...
- Python GIL 多线程机制 (C source code)
最近阅读<Python源码剖析>对进程线程的封装解释: GIL,Global Interpreter Lock,对于python的多线程机制非常重要,其如何实现的?代码中实现如下: 指向一 ...
- python多线程机制
Python中的线程从一开始就是操作系统的原生线程.而Python虚拟机也同样使用一个全局解释器锁(Global Interpreter Lock,GIL)来互斥线程多Python虚拟机的使用. GI ...
- C/C++ 多线程机制
一.C/C++多线程操作说明 C/C++多线程基本操作如下: 1. 线程的建立结束 2. 线程的互斥和同步 3. 使用信号量控制线程 4. 线程的基本属性配置 在C/C++代码编写时,使用多线程机制, ...
随机推荐
- mysql 删除重复数据保留一条
验证:mysql 5.6版本 方法一: delete a from table a left join( select (id) from table group by studentName,cla ...
- Codeforces Round #370 (Div. 2) E. Memory and Casinos 线段树
E. Memory and Casinos 题目连接: http://codeforces.com/contest/712/problem/E Description There are n casi ...
- Mutual Training for Wannafly Union #1解题报告
---恢复内容开始--- q神等人组织的vjudge上的多校训练,题目基本上都来自于CF,#1是上周进行的,参加后感觉收获很多,因为上周准备期中比较忙,解题报告现在补上. 比赛地址(兼题目地址) A题 ...
- hdu 1052 (greedy algorithm) 分类: hdoj 2015-06-18 16:49 35人阅读 评论(0) 收藏
thanks to http://acm.hdu.edu.cn/discuss/problem/post/reply.php?action=support&postid=19638&m ...
- 去掉安卓中activity的标题栏
去掉所有Activity界面的标题栏 修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme. ...
- 当一个activity中按钮过多时怎么办?
这几天看极客学院的视频,跟视频中的老师学到的一些小技巧~~ .setOnClickListener(this) 通过重写this(我猜的是重写),下面有onClicked() package exam ...
- ubuntu下安装svn服务器
sudo apt-get install apache2 sudo apt-get install subversion sudo apt-get install libapache2-svn 其次, ...
- 简单poi读取excel
1.添加依赖jar包 maven配置: <!-- poi being --> <dependency> <groupId>org.apache.poi</gr ...
- 1、datatable与datagrid之间的绑定
1.前台代码: 插入一个datagrid控件,设置几列. 这里有两点要注意: 1)为了显示所要查询的日期,我将前台的列名与后台查询出来的日期绑定了,用了x:Name这个属性 2)与后台datatabl ...
- oracle数据库解析json格式
随着非关系型数据大规模使用,以json格式产生的数据也出现在我所管理的Oracle数据库的CLOB字段里面,使用过程中就需要解析出指定键的值. 使用了最新版本 如果Oracle版本为12.1.0.2的 ...