设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: 专业 applewat 娱乐 服务
当前位置: 首页 > 站长百科 > 正文

在Oracle过程中实现多线程

发布时间:2021-01-11 12:25 所属栏目:[站长百科] 来源:网络整理
导读:我正在研究Oracle 10gR2. 这是我的问题 – 我有一个程序,让我们调用它* proc_parent *(在一个包内)应该调用另一个程序,让我们调用它* user_creation *.我必须在循环中调用* user_creation *,这是从表中读取一些列 – 这些列值作为参数传递给* user_creatio

我正在研究Oracle 10gR2.

这是我的问题 –

我有一个程序,让我们调用它* proc_parent *(在一个包内)应该调用另一个程序,让我们调用它* user_creation *.我必须在循环中调用* user_creation *,这是从表中读取一些列 – 这些列值作为参数传递给* user_creation *过程.

代码是这样的:

FOR i IN (SELECT    community_id,password,username 
               FROM     customer 
               WHERE    community_id IS NOT NULL 
               AND      created_by = 'SRC_GLOB'
              )
     LOOP
        user_creation (i.community_id,i.password,i.username);
     END LOOP;

COMMIT;

user_Creation过程正在为某些业务逻辑调用Web服务,然后根据响应更新表.

我需要找到一种可以在这里使用多线程的方法,这样我就可以运行这个过程的多个实例来加快速度.我知道我可以使用* DBMS_SCHEDULER *并且可能使用* DBMS_ALERT *但是我无法弄清楚如何在循环中使用它们.

有人能引导我朝正确的方向发展吗?

谢谢,
ANKUR

解决方法

你能做的就是同时提交大量工作.见 Example 28-2 Creating a Set of Lightweight Jobs in a Single Transaction

这将填充pl / sql表,其中包含您要在一个tx中同时提交的所有作业.一旦提交(启用)它们,它们就会开始运行,系统可以处理多少,或者资源管理器计划允许的数量.

轻量级作业的开销非常小/轻.

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读