DECLARE
-- lock
l_lockname VARCHAR2(100);
l_lockhandle VARCHAR2(200);
l_lock_output NUMBER;
l_locked BOOLEAN := FALSE;
g_pkg_name VARCHAR2(240) := '2345';
g_org_id NUMBER := 112;
BEGIN
/* 定义按何种方式并发(此处为同一个OU不能同时执行)
* lockname类似于定义一个唯一的名字,当并发程序执行时就会去判断是否这个唯一标识已经存在 */
l_lockname := g_pkg_name || '_' || g_org_id;
--根据l_lockname获取唯一标识l_lockhandle
dbms_lock.allocate_unique(lockname => l_lockname,
lockhandle => l_lockhandle); /*用l_lockhandle这个唯一标识去给当前请求加锁
-- Return value:
-- 0 - success
-- 1 - timeout
-- 2 - deadlock
-- 3 - parameter error
-- 4 - already own lock specified by 'id' or 'lockhandle'
-- 5 - illegal lockhandle*/
l_lock_output := dbms_lock.request(l_lockhandle, 6, 60, FALSE); dbms_output.put_line('1 ' || l_lock_output); dbms_lock.allocate_unique(lockname => l_lockname,
lockhandle => l_lockhandle);
l_lock_output := dbms_lock.request(l_lockhandle, 6, 60, FALSE);
dbms_output.put_line('2 ' || l_lock_output);
--此处添加请求的业务逻辑
--dbms_lock.sleep(seconds => 50); /*特别注意的是一定要将lockname释放掉 否则这个并发就永远别想再执行了*/
l_lock_output := dbms_lock.release(l_lockhandle);
dbms_output.put_line('3 ' || l_lock_output);
dbms_lock.allocate_unique(lockname => l_lockname,
lockhandle => l_lockhandle);
l_lock_output := dbms_lock.request(l_lockhandle, 6, 60, FALSE);
dbms_output.put_line('4 ' || l_lock_output);
l_lock_output := dbms_lock.release(l_lockhandle);
dbms_output.put_line('5 ' || l_lock_output);
EXCEPTION
WHEN apps.fnd_api.g_exc_error THEN
IF l_lock_output = 0 THEN
l_lock_output := dbms_lock.release(l_lockhandle);
END IF;
WHEN OTHERS THEN
IF l_lock_output = 0 THEN
l_lock_output := dbms_lock.release(l_lockhandle);
END IF;
END;

oracle ebs 加锁的更多相关文章

  1. Oracle EBS 加锁解锁程序

    FUNCTION request_lock(p_lock_name IN VARCHAR2) RETURN BOOLEAN IS l_lock_name ); l_lock_ret INTEGER; ...

  2. BPM与 SAP & Oracle EBS集成解决方案分享

    一.需求分析 SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的青睐.然而由于系统庞大.价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑: 1.SAP如何实现&qu ...

  3. Oracle EBS - Doc

    Oracle EBS spec.: http://vianet/IT/IT%20Dept/IT%20Project%20Update2/Active%20Projects%20%20Manufactu ...

  4. Oracle EBS R12 (12.1.3) Installation Linux(64 bit)

    Oracle EBS R12 (12.1.3) Installation Linux(64 bit) Contents Objective. 3 1 Download & Unzip. 3 D ...

  5. Oracle EBS进化史

    https://blogs.oracle.com/ptian/entry/oracle_ebs%E8%BF%9B%E5%8C%96%E5%8F%B2 通过图表总结了下Oracle EBS的进化历史,回 ...

  6. Oracle EBS Form 发布到Server端的注意事项

    前段时间在本地XP系统上测试了一些整合javabean的Form例子,想着发布到服务器段去看看能否运行正常,一开始以为会和本地XP系统一样,部署到相关的目录下进行一些配置就可以了,但实际过程却和想象的 ...

  7. Oracle EBS Form Builder使用Java beans创建窗体

    最近有个项目,需要研究一下Oracle的E-Business Sutie(EBS),对于以前没接触此套件的我来说,简直太痛苦了.在网上找了一堆资料,试着进行Form二次开发,也遇到各类奇葩问题.目前遇 ...

  8. Oracle EBS Java Applet报错:找不到类

    Oracle EBS Home Page可以打开,但是无法打开EBS的Form,查看Java控制台,有错误报出. java控制台报错,如下: Java Plug-in 1.6.0_07 使用 JRE ...

  9. Oracle EBS的BIP报表中显示特殊字体

    http://oracleseeker.com/2009/08/25/font_mapping_setup_for_special_character_print_in_oracle_ebs_bip/ ...

  10. Oracle Ebs R12 SLA与GL关系变化

    http://www.cnblogs.com/bruce_zhao/p/3809886.html Oracle Ebs R12 SLA与GL关系变化 SLA概念:SLA(Subledger Accou ...

随机推荐

  1. CCRD_TOC_2008年第5期

    中信国健临床通讯 2008年第5期 目 录   RA: 临床缓解与亚临床炎症 1.     DMARD诱导缓解的RA患者中仍有影像学确证的亚临床炎症 Brown AK, et al. Arthriti ...

  2. Canonical为所有支持的Ubuntu LTS系统发布了新的Linux内核更新

    Canonical近日为所有支持的Ubuntu LTS系统发布了新的Linux内核更新,以解决总共19个安全漏洞. 新的Ubuntu内核更新仅适用于长期支持的Ubuntu系统,包括Ubuntu 22. ...

  3. ThreadLocal最终版本

    ThreadLocal工作原理 目录 ThreadLocal工作原理 一.官方文档描述 二.为什么使用ThreadLocal 2.1.案例 三.ThreadLocal和syncronized关键字区别 ...

  4. 100、 FilenameUtils

    FilenameUtils import org.apache.commons.io.FilenameUtils; 测试数据 String fileDirectory = "/D:/aa/b ...

  5. QT个人笔记

    1.QT的setCursor(Qt::CrossCursor) 干什么用 ui->View->setCursor(Qt::CrossCursor); setCursor函数用于设置窗口上的 ...

  6. css3的的新特性

    1.transform 2.calc 3.transition

  7. unity工程多开Bat

    %cd%:: 源路径set sourceDir=C:\Projects\XXX:: 目标路径set destDir=C:\Projects\XXX_Clone :: 如果目标路径不存在就创建if no ...

  8. 去除Bam文件中的PCR 重复

    1.使用samtools 去除重复 samtools sort -n -@ 20 file.bam |samtools fixmate -m -@20 - - |samtools sort -@ 20 ...

  9. 【解决办法】安装Boost 提示'cl'不是内部或外部命令

    VisualStudio 2022 Community 亲测可用. 1. 检查下载版本是否是最新版,我开始下的1.66.0会报错,后来换成1.79.0就没问题.官网https://www.boost. ...

  10. Android集成mupdf,实现手写笔签字,手指翻页的java代码

    import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.RectF; import ...