此包写在oracle数据库中,供Form表单调用:

CREATE OR REPLACE PACKAGE BODY cux_main_pkg AS

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

** PROCEDURE:   insert_row()

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

PROCEDURE insert_row(x_row_id             IN OUT VARCHAR2,

x_insp_header_id     IN OUT NUMBER,

p_org_id             IN NUMBER,

p_doc_type_class     IN VARCHAR2,

p_inspection_number  IN VARCHAR2,

p_main_subsidiary    IN VARCHAR2 DEFAULT NULL,

p_status             IN VARCHAR2,

p_oe_header_id       IN NUMBER DEFAULT NULL,

p_creation_date      IN DATE,

p_created_by         IN NUMBER,

p_last_updated_by    IN NUMBER,

p_last_update_date   IN DATE,

p_last_update_login  IN NUMBER DEFAULT NULL)

IS

CURSOR c IS

SELECT ROWID

FROM table1

WHERE insp_header_id = x_insp_header_id;

BEGIN

IF x_insp_header_id IS NULL THEN

SELECT main_s.nextval

INTO x_insp_header_id

FROM dual;

END IF;

INSERT INTO table1

(insp_header_id,

org_id,

doc_type_class,

inspection_number,

main_subsidiary,

status,

oe_header_id,

creation_date,

created_by,

last_updated_by,

last_update_date,

last_update_login

)

VALUES

(x_insp_header_id,

p_org_id,

p_doc_type_class,

p_inspection_number,

p_main_subsidiary,

p_status,

p_oe_header_id,

p_creation_date,

p_created_by,

p_last_updated_by,

p_last_update_date,

p_last_update_login

);

OPEN c;

FETCH c

INTO x_row_id;

IF (c%NOTFOUND) THEN

CLOSE c;

RAISE no_data_found;

END IF;

CLOSE c;

END insert_row;

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

** PROCEDURE:   lock_row()

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

PROCEDURE lock_row(p_insp_header_id     IN NUMBER,

p_org_id             IN NUMBER,

p_doc_type_class     IN VARCHAR2,

p_inspection_number  IN VARCHAR2,

p_main_subsidiary    IN VARCHAR2 DEFAULT NULL,

p_status             IN VARCHAR2,

p_oe_header_id       IN NUMBER DEFAULT NULL,

p_creation_date      IN DATE,

p_created_by         IN NUMBER,

p_last_updated_by    IN NUMBER,

p_last_update_date   IN DATE,

p_last_update_login  IN NUMBER

)

IS

CURSOR c IS

SELECT insp_header_id,

org_id,

doc_type_class,

inspection_number,

nvl(main_subsidiary, 'MAIN') main_subsidiary,

status,

oe_header_id,

creation_date,

created_by,

last_updated_by,

last_update_date,

last_update_login

FROM table1

WHERE insp_header_id = p_insp_header_id

FOR UPDATE OF insp_header_id NOWAIT;

rec c%ROWTYPE;

BEGIN

OPEN c;

FETCH c

INTO rec;

IF (c%NOTFOUND) THEN

CLOSE c;

fnd_message.set_name('FND', 'FORM_RECORD_DELETED');

app_exception.raise_exception;

END IF;

CLOSE c;

IF ((rec.insp_header_id = p_insp_header_id) AND

((rec.org_id = p_org_id) OR

((rec.org_id IS NULL) AND (p_org_id IS NULL))) AND

((rec.doc_type_class = p_doc_type_class) OR

((rec.doc_type_class IS NULL) AND (p_doc_type_class IS NULL))) AND

((rec.inspection_number = p_inspection_number) OR

((rec.inspection_number IS NULL) AND (p_inspection_number IS NULL))) AND

((rec.main_subsidiary = p_main_subsidiary) OR

((rec.main_subsidiary IS NULL) AND (p_main_subsidiary IS NULL))) AND

((rec.status = p_status) OR

((rec.status IS NULL) AND (p_status IS NULL))) AND

((rec.oe_header_id = p_oe_header_id) OR

((rec.oe_header_id IS NULL) AND (p_oe_header_id IS NULL))) AND

((rec.creation_date = p_creation_date) OR

((rec.creation_date IS NULL) AND (p_creation_date IS NULL))) AND

((rec.created_by = p_created_by) OR

((rec.created_by IS NULL) AND (p_created_by IS NULL))) AND

((rec.last_updated_by = p_last_updated_by) OR

((rec.last_updated_by IS NULL) AND (p_last_updated_by IS NULL))) AND

((rec.last_update_date = p_last_update_date) OR

((rec.last_update_date IS NULL) AND (p_last_update_date IS NULL))) AND

((rec.last_update_login = p_last_update_login) OR

((rec.last_update_login IS NULL) AND (p_last_update_login IS NULL)))) THEN

NULL;

ELSE

fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');

app_exception.raise_exception;

END IF;

END lock_row;

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

** PROCEDURE:   update_row()

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

PROCEDURE update_row(p_insp_header_id     IN NUMBER,

p_org_id             IN NUMBER,

p_doc_type_class     IN VARCHAR2,

p_inspection_number  IN VARCHAR2,

p_main_subsidiary    IN VARCHAR2 DEFAULT NULL,

p_status             IN VARCHAR2,

p_oe_header_id       IN NUMBER DEFAULT NULL,

p_last_updated_by    IN NUMBER,

p_last_update_date   IN DATE,

p_last_update_login  IN NUMBER DEFAULT NULL

)

IS

BEGIN

UPDATE table1

SET insp_header_id     = p_insp_header_id,

org_id             = p_org_id,

doc_type_class     = p_doc_type_class,

inspection_number  = p_inspection_number,

main_subsidiary    = p_main_subsidiary,

status             = p_status,

oe_header_id       = p_oe_header_id,

last_updated_by    = p_last_updated_by,

last_update_date   = p_last_update_date,

last_update_login  = p_last_update_login

WHERE insp_header_id = p_insp_header_id;

IF (SQL%NOTFOUND) THEN

RAISE no_data_found;

END IF;

END update_row;

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

** PROCEDURE:   delete_row()

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

PROCEDURE delete_row(p_insp_header_id IN NUMBER)

IS

BEGIN

DELETE FROM table1

WHERE insp_header_id = p_insp_header_id;

IF (SQL%NOTFOUND) THEN

RAISE no_data_found;

END IF;

END delete_row;

END cux_main_pkg;

oracle 中增加行,Oracle中实现FORM表单插入、锁定、更新行、删除行的包相关推荐

  1. mysql中selectform_带有select标签的form表单,怎么提交到数据库啊 ?具体情况如下...

    如图所示,MySQL中已经建立一张名为biaodan的table,有id,month,revenue三个字段,请问怎么提交到MySQL中去.我想单纯用PHP和和HTML实现,可以吗? 如图所示,MyS ...

  2. php js获取表单内容,jquery form表单获取内容以及绑定数据_javascript技巧

    在日常开发的过程中,难免会用到form表单,我们需要获取表单的数据保存到数据库,或者拿到后台的一串json数据,要将数据绑定到form表单上,这里我写了一个基于jquery的,formHelp插件,使 ...

  3. 前端_网页编程 Form表单与模板引擎(上)

    目录 一.form表单的基本使用 1. 什么是表单? 2. 表单的组成部分 3. < form>标签的基本属性 3.1 action 3.2 target 3.3 method 3.4 e ...

  4. 用自定义的form表单对jqgrid数据进行检索查询

    资料如下:http://stackoverflow.com/questions/5819071/jqgrid-custom-form-to-search-data-select-box-problem ...

  5. HTML中的form表单有一个关键属性 enctype

    HTML中的form表单有一个关键属性 enctype=application/x-www-form-urlencoded 或multipart/form-data. 1.enctype=" ...

  6. form action可以变量么_在 Laravel 中优雅处理 Form 表单

    php中文网最新课程 每日17点准时技术干货分享 在开发 Laravel 应用的时候,通常都会涉及到表单的处理,针对如何优雅处理和复用 Laravel 的 Form 表单,下面是小小的人生经验: 使用 ...

  7. Vue中使用form表单提交刷新问题

    vue中使用表单form默认提交行为是刷新一下,在这儿我们使用事件修饰符prevent来阻止form表单的默认行为 在@click后面跟上prevent 这样就可以阻止form表单默认刷新行为了 &l ...

  8. antd中的form表单 initialValue导致数据不更新问题

    初步理解 : initialValue就是所谓的defaultValue,只会在第一次赋值的时候改变,却又有一些不同,因为 initialValue又会因其他改动而改变. 然而当获取的数据重新上来要渲 ...

  9. ASP.NET 安全认证(二)——灵活运用 Form 表单认证中的 deny 与 allow 及保护 .htm 等文件 ....

    话说上回,简单地说了一下 Form 表单认证的用法.或许大家觉得太简单,对那些大内高手来说应该是"洒洒水啦""小 Kiss 啦(小意思)".今天咱们来点的花样吧 ...

最新文章

  1. 一次900万+数据量 SQL 查询优化后的原理总结!
  2. TinyKing的博客园
  3. 为Linux命令起别名
  4. java 集成 kafka 0.8.2.1 适配jdk1.6
  5. c 语言str.size,C/C++ strlen(str)和str.length()和str.size()的区别
  6. 揭开发家致富的2个途径
  7. 楼市捞金术:我是怎么在9个月把房价炒高两三倍的
  8. .net core——打造自己的 dotnet new 微服务解决方案模板
  9. win10-ubuntu-软件配置-开机root无密码-风扇转速调节
  10. 大数据时代的 10 个重大变化
  11. 时间序列模型(1)--移动平均法
  12. Ubuntu18.04LTS系统编译Android所需安装的一些插件内容
  13. 大疆无人机安卓Mobile Sdk开发(五)解决M300Rtk H20相机无法获取图片视频的问题
  14. 11_ue4天空球的使用
  15. Iceberg 合并小文件并删除历史(Flink)
  16. docker 相关操作 nexus 清理空间 gitlab 修改下载地址
  17. android 手机作为手写输入板
  18. 【解决】Exception in thread main java.io.IOException: Nameserver not responding on 127.0.0.1
  19. 领导:以后晚上和周末都要强制加班,不服试试看?
  20. oracle可以导出的格式,Oracle导入导出数据的几种方式

热门文章

  1. 选择交换机需要了解的一些性能参数
  2. 带网管工业交换机跟不带网管交换机的差别
  3. HD-SDI光端机是什么?其性能特点和技术参数有哪些?
  4. [渝粤教育] 广东-国家-开放大学21秋期末考试中国近现代史纲要(A)10881k1
  5. 【渝粤教育】 国家开放大学2020年春季 2411中国现代文学 参考试题
  6. 【渝粤题库】国家开放大学2021春1258房屋建筑混凝土结构设计题目
  7. 【物联网工厂大揭秘】电路板、数传模块 是怎么生产制造出来的?
  8. 物联网在医疗保健中的应用
  9. php 脏数据,使用 PHP Masked Package 屏蔽敏感数据
  10. mysql5.6特性_MySQL5.6新版本特性