oracle 中增加行,Oracle中实现FORM表单插入、锁定、更新行、删除行的包
此包写在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表单插入、锁定、更新行、删除行的包相关推荐
- mysql中selectform_带有select标签的form表单,怎么提交到数据库啊 ?具体情况如下...
如图所示,MySQL中已经建立一张名为biaodan的table,有id,month,revenue三个字段,请问怎么提交到MySQL中去.我想单纯用PHP和和HTML实现,可以吗? 如图所示,MyS ...
- php js获取表单内容,jquery form表单获取内容以及绑定数据_javascript技巧
在日常开发的过程中,难免会用到form表单,我们需要获取表单的数据保存到数据库,或者拿到后台的一串json数据,要将数据绑定到form表单上,这里我写了一个基于jquery的,formHelp插件,使 ...
- 前端_网页编程 Form表单与模板引擎(上)
目录 一.form表单的基本使用 1. 什么是表单? 2. 表单的组成部分 3. < form>标签的基本属性 3.1 action 3.2 target 3.3 method 3.4 e ...
- 用自定义的form表单对jqgrid数据进行检索查询
资料如下:http://stackoverflow.com/questions/5819071/jqgrid-custom-form-to-search-data-select-box-problem ...
- HTML中的form表单有一个关键属性 enctype
HTML中的form表单有一个关键属性 enctype=application/x-www-form-urlencoded 或multipart/form-data. 1.enctype=" ...
- form action可以变量么_在 Laravel 中优雅处理 Form 表单
php中文网最新课程 每日17点准时技术干货分享 在开发 Laravel 应用的时候,通常都会涉及到表单的处理,针对如何优雅处理和复用 Laravel 的 Form 表单,下面是小小的人生经验: 使用 ...
- Vue中使用form表单提交刷新问题
vue中使用表单form默认提交行为是刷新一下,在这儿我们使用事件修饰符prevent来阻止form表单的默认行为 在@click后面跟上prevent 这样就可以阻止form表单默认刷新行为了 &l ...
- antd中的form表单 initialValue导致数据不更新问题
初步理解 : initialValue就是所谓的defaultValue,只会在第一次赋值的时候改变,却又有一些不同,因为 initialValue又会因其他改动而改变. 然而当获取的数据重新上来要渲 ...
- ASP.NET 安全认证(二)——灵活运用 Form 表单认证中的 deny 与 allow 及保护 .htm 等文件 ....
话说上回,简单地说了一下 Form 表单认证的用法.或许大家觉得太简单,对那些大内高手来说应该是"洒洒水啦""小 Kiss 啦(小意思)".今天咱们来点的花样吧 ...
最新文章
- 一次900万+数据量 SQL 查询优化后的原理总结!
- TinyKing的博客园
- 为Linux命令起别名
- java 集成 kafka 0.8.2.1 适配jdk1.6
- c 语言str.size,C/C++ strlen(str)和str.length()和str.size()的区别
- 揭开发家致富的2个途径
- 楼市捞金术:我是怎么在9个月把房价炒高两三倍的
- .net core——打造自己的 dotnet new 微服务解决方案模板
- win10-ubuntu-软件配置-开机root无密码-风扇转速调节
- 大数据时代的 10 个重大变化
- 时间序列模型(1)--移动平均法
- Ubuntu18.04LTS系统编译Android所需安装的一些插件内容
- 大疆无人机安卓Mobile Sdk开发(五)解决M300Rtk H20相机无法获取图片视频的问题
- 11_ue4天空球的使用
- Iceberg 合并小文件并删除历史(Flink)
- docker 相关操作 nexus 清理空间 gitlab 修改下载地址
- android 手机作为手写输入板
- 【解决】Exception in thread main java.io.IOException: Nameserver not responding on 127.0.0.1
- 领导:以后晚上和周末都要强制加班,不服试试看?
- oracle可以导出的格式,Oracle导入导出数据的几种方式
热门文章
- 选择交换机需要了解的一些性能参数
- 带网管工业交换机跟不带网管交换机的差别
- HD-SDI光端机是什么?其性能特点和技术参数有哪些?
- [渝粤教育] 广东-国家-开放大学21秋期末考试中国近现代史纲要(A)10881k1
- 【渝粤教育】 国家开放大学2020年春季 2411中国现代文学 参考试题
- 【渝粤题库】国家开放大学2021春1258房屋建筑混凝土结构设计题目
- 【物联网工厂大揭秘】电路板、数传模块 是怎么生产制造出来的?
- 物联网在医疗保健中的应用
- php 脏数据,使用 PHP Masked Package 屏蔽敏感数据
- mysql5.6特性_MySQL5.6新版本特性