在上一篇中文章中,如果建立了数据块的四个触发器,并在触发器中调用了程序单元中对应数据块名的包,则在这个包中还需调用专门用于实现插入行、锁定行、更新行、删除行的包MAIN_PVT。在这个包MAIN_PVT中主要调用的是数据块中的存储过程实现插入行、锁定行、更新行、删除行的功能:

PACKAGE BODY main_pvt IS

/*=====================================

** PROCEDURE:   insert_row()

**=====================================*/

PROCEDURE insert_row IS

BEGIN

fnd_standard.set_who;

IF :main_v.id IS NULL THEN

SELECT main_s.nextval        --序列作为唯一值赋值给数据块的ID字段

INTO :main_v.id

FROM dual;

END IF;

cux_main_pkg.insert_row(x_row_id             => :main_v.row_id,

x_insp_header_id     => :main_v.id,

p_org_id             => :main_v.org_id,

p_doc_type_class     => :main_v.doc_type_class,

p_inspection_number  => :main_v.external_check_list,

p_status             => :main_v.status,

p_oe_header_id       => :main_v.oe_header_id);

end insert_row;

/*=====================================

** PROCEDURE:   lock_row()

**=====================================*/

PROCEDURE lock_row IS

i NUMBER := 0;

BEGIN

LOOP

BEGIN

i := i + 1;

cux_main_pkg.lock_row(p_insp_header_id     => :main_v.id,

p_org_id             => :main_v.org_id,

p_doc_type_class     => :main_v.doc_type_class,

p_inspection_number  => :main_v.external_check_list,

p_status             => :main_v.status,

p_oe_header_id       => :main_v.oe_header_id);

RETURN;    --如果成功锁住记录,没有发生异常,则跳出整个lock_row函数或过程,不再往下执行

EXCEPTION

WHEN app_exception.record_lock_exception THEN

app_exception.record_lock_error(i);

END;

END LOOP;

END lock_row;

/*=====================================

** PROCEDURE:   update_row()

**=====================================*/

PROCEDURE update_row IS

BEGIN

fnd_standard.set_who;

cux_main_pkg.update_row(p_insp_header_id     => :main_v.insp_header_id,

p_org_id             => :main_v.org_id,

p_doc_type_class     => :main_v.doc_type_class,

p_inspection_number  => :main_v.external_check_list,

p_status             => :main_v.status,

p_oe_header_id       => :main_v.oe_header_id

);

END update_row;

/*=====================================

** PROCEDURE:   delete_row()

**=====================================*/

PROCEDURE delete_row IS

BEGIN

cux_main_pkg.delete_row(p_insp_header_id => :main_v.insp_header_id);

END delete_row;

END main_pvt;

oracle form中实现隐藏,Oracle Form数据块实现同时只有一个人锁定修改数据相关推荐

  1. oracle数据库中索值,Oracle数据库中的索引详解

    Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...

  2. oracle asm中candidate,【Oracle ASM】关于asm实例与db实例中的磁盘状态_详细分析过程...

    现象描述ITPUB个人空间O Q9g.B,c/j操作系统: Enterprise Linux 5.5ITPUB个人空间z7f$Lu#\"f V :oracle 10.2.0.4 RAC+AS ...

  3. spring datasource oracle,spring中2种oracle数据源的配置

    value="${proxool.maxConnCount}" /> value="${proxool.minConnCount}" /> valu ...

  4. C#在一个form中改变另一个form中控件的内容、C#做登录界面并且密码显示为*

    C#中在一个窗体中改变另外一个窗体中控件的显示 这个问题可以用来改变messageBox中默认显示的"确定",可以使用此方法重新写一个窗体,显示OK: 方法: 1.将要改变的for ...

  5. oracle数据库中的回收站,Oracle 10G 中的"回收站"-数据库专栏,ORACLE

    oracle 10g 中的"回收站" by fenng http://www.dbanotes.net 在oracle 10g中,引入了一个回收站(recycle bin)的概念. ...

  6. oracle if中过程判断,oracle的if判断语句

    ORACLE中触发器的判断IF语句 加一行 NULL 即可 例如: SQL> DECLARE 2 testvalue INT; 3 BEGIN 4 testvalue := 200; 5 6 I ...

  7. oracle数据库中insert,【Oracle】sql插入之 insert all、insert first

    Oracle插入之 insert all.insert first介绍 利用insert first/all使得INSERT语句可以同时插入多张表,还可以根据判断条件来决定每条记录插入到哪张或哪几张表 ...

  8. oracle数据库中基础知识,oracle数据库基础知识

    oracle数据库基础知识 -- End loop --1 declare pnum number(4):=0; begin while pnum < 10 loop dbms_output.p ...

  9. oracle数据库中常用语法,oracle数据库常用语法(中文注释版)

    -- 查看系统所有变量值 show all -- 显示当前连接用户 show user -- 显示表结构 desc 表名 -- 显示错误 show error -- 退出 exit; 表空间是数据库中 ...

最新文章

  1. 计算机科学和Python编程导论(二 ) Python简介
  2. ProtoBuf开发者指南
  3. Linux下如何进行FTP设置
  4. Apache web服务
  5. emwin之在中断服务程序中创建窗口的结果
  6. 辛星一起了解下后续PHP性能功能
  7. 如何获取Agile PLM Business Object 对应Agile对象的属性?
  8. HDU 3861 The King’s Problem 强连通分量 最小路径覆盖
  9. 采用状态空间法求解八数码问题
  10. 高速局域网文件传输工具(速度可达20M) 的企业云盘
  11. 2022年信息安全工程师考试知识点:访问控制
  12. 【C#】AutoCAD二次开发笔记
  13. 谷歌的Pixel Watch学习能力爆表,他能从手机中学到什么呢?
  14. VBA---查单元格,行/列,区域边界情况,用end(xlup) .row , end(xldown) .row 等
  15. 转:CEO, CFO, CIO, CTO, CSO是什么
  16. python 计算机网络课程设计(网络主机扫描程序)
  17. google map api key申请
  18. 安卓常用控件--列表视图
  19. MySQL连续三条_求教一条Mysql,查询大于等于3条连续的重复记录,急急急!!!!...
  20. 数据库SQL server mangement studio服务器名称是什么

热门文章

  1. 须使用visual c 内联汇编语言开发,在VisualC 中使用内联汇编
  2. mysql update 跳过重复_MySQL通过UPDATE / DELETE整合重复的数据记录
  3. 微信公众号大转盘抽奖活动链接怎么添加
  4. Chrome浏览器如何安装与使用PDFViewer扩展程序
  5. springmvc框架下的国内地区级联效果(共享一下给学习的小伙伴)
  6. js来读写cookie操作
  7. 固定布局(fixed layout)、流体布局(fluid layout)、弹性布局(elastic layout)、响应布局(responsive layout)理解和技巧归纳
  8. Spring深入理解之ComponentScan___@ComponentScan 详解
  9. Java JDBC篇2——JDBC增删查改
  10. mysql partition 性能_通过分区(Partition)提升MySQL性能