CREATE OR REPLACE PROCEDURE SP_APPROVALSET_OVERTIME(VAPPLY_NO varchar2,
VAPPLYKIND_NO varchar2,VFAC_NO varchar2,VAPPDEPT_NO varchar2
,VDUTYRANK_NO varchar2,VBUILDING varchar2, VSEC_NO varchar2,VAPPLY_DATE varchar2
,VAPPLYUSER_NO varchar2,VEXCEPTION_MK varchar2 )
AS
VVAPPLYKIND_NO varchar2(2);
VVFAC_NO varchar2(4) ;
VVBUILDING_NO varchar2(3) ;
VVDEPTKIND_NO varchar2(5);
VVDUTYRANK_NO varchar2(1);
VVAPPROVAL_SORT NUMBER;
VVAPPROVALRANK_NO varchar2(2);
VVAPPDEPT_NO varchar2(20);
VVAPPROVAL_TYPE varchar2(1);
VVAPPROVAL_MK varchar2(1);
VAPPDEPT varchar2(5);

CURSOR MYCURSOR is
SELECT A.APPLYKIND_NO,A.FAC_NO,A.BUILDING_NO,A.DEPTKIND_NO,D.APPROVAL_SORT,D.APPDEPT_NO,
D.APPROVAL_TYPE,D.APPROVAL_MK,D.APPROVALRANK_NO
FROM APPROVALSET_MASTER A,APPROVALSET_DETAIL D
WHERE A.APPLYKIND_NO=VAPPLYKIND_NO
AND A.FAC_NO=VFAC_NO
AND A.BUILDING_NO=VBUILDING
AND A.EXCEPTION_MK=VEXCEPTION_MK
AND A.DEPTKIND_NO=(SELECT DEPTKIND_NO FROM APPDEPT WHERE APPDEPT_NO=VAPPDEPT_NO AND FAC_NO=VFAC_NO)
--AND A.DUTYRANK_NO=''
AND A.APPLYKIND_NO=D.APPLYKIND_NO
AND A.FAC_NO=D.FAC_NO
AND A.BUILDING_NO=D.BUILDING_NO
AND A.DEPTKIND_NO=D.DEPTKIND_NO
AND A.EXCEPTION_MK=D.EXCEPTION_MK;
BEGIN
OPEN MYCURSOR;
LOOP
FETCH MYCURSOR into VVAPPLYKIND_NO,VVFAC_NO,VVBUILDING_NO,VVDEPTKIND_NO,--@DUTYRANK_NO,
VVAPPROVAL_SORT,VVAPPDEPT_NO,VVAPPROVAL_TYPE,VVAPPROVAL_MK,VVAPPROVALRANK_NO;
EXIT WHEN MYCURSOR%NOTFOUND;
DELETE FROM APPROVAL_SET WHERE APPLY_NO=VAPPLY_NO AND APPDEPT_SORT=VVAPPROVAL_SORT;
DELETE FROM APPLY WHERE APPLY_NO=VAPPLY_NO ;
COMMIT;
IF VVAPPROVAL_MK='Y' THEN
VAPPDEPT:=VAPPDEPT_NO;
ELSE
VAPPDEPT:= VVAPPDEPT_NO;
END IF;

INSERT INTO APPROVAL_SET(APPLY_NO,APPDEPT_SORT,APPLYKIND_NO,APPROVALRANK_NO,FAC_NO,APPDEPT_NO,APPROVAL_MK,APPROVAL_TYPE)
VALUES(VAPPLY_NO,VVAPPROVAL_SORT,VVAPPLYKIND_NO,VVAPPROVALRANK_NO,VVFAC_NO,VAPPDEPT,VVAPPROVAL_MK,VVAPPROVAL_TYPE);
COMMIT;
INSERT INTO APPLY(APPLY_NO,APPLY_CONTENT,APPLY_DATE,FAC_NO,SEC_NO,APPLYDEPT_NO,APPLYKIND_NO,DUTYRANK_NO,APPLYUSER_NO,APPROVALFINISH_MK)
VALUES(VAPPLY_NO,VVFAC_NO||VSEC_NO||VAPPDEPT,VAPPLY_DATE,VVFAC_NO,VSEC_NO,VAPPDEPT,VVAPPLYKIND_NO,VDUTYRANK_NO,VAPPLYUSER_NO,'N');
COMMIT;

END LOOP;
CLOSE MYCURSOR;
COMMIT;
end;

SP_APPROVALSET_OVERTIME 插入單據的更多相关文章

  1. Scrapy——將數據保存到MySQL數據庫

    Scrapy--將數據保存到MySQL數據庫 1. 在MySQL中創建數據庫表job_inf: 1 Create table job_inf( 2 id int(11) not null auto_i ...

  2. k3 Bos开发百问百答

              K/3 BOS开发百问百答   (版本:V1.1)           K3产品市场部       目录 一.基础资料篇__ 1 [摘要]bos基础资料的显示问题_ 1 [摘要]单 ...

  3. nodejs连接数据库的增删改查

    连接数据库后需要用代码操作的是,传入mysql语句,和参数,然后就是回调了 新增 // 新增 app.post('/process_post', urlencodedParser, function ...

  4. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  5. SQLAlchemy 一对多

    下述範例描述了電影同導演的多對一關係.範例中說明了從用戶定義的Python類建立數據表的方法,雙方關係例項的建立方法,以及最終查詢數據的方法:包括延遲載入和預先載入兩種自動生成的SQL查詢. 結構定義 ...

  6. 关押罪犯(2010年NOIP全国联赛提高组)

    题目描述 Description S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极 不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用&qu ...

  7. SQLServer 分组查询相邻两条记录的时间差

    原文:SQLServer 分组查询相邻两条记录的时间差 首先,我们通过数据库中表的两条记录来引出问题,如下图 以上为一个记录操作记录的表数据.OrderID为自增长列,后面依次为操作类型,操作时间,操 ...

  8. XML系列之--Linq操作带属性的XML(四)

    关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...

  9. SQL Server監控与診斷

    僅為記錄工作中遇到的問題. 1. 字符串截斷: SQL server里很多job用於運行DTS,經常會收到系統出錯警報,如: ...String ) The statement has been te ...

随机推荐

  1. Action<T1, T2>委托

    封装包含两个参数的方法委托,没有返回值. 语法 public delegate void Action<in T1, in T2>( T1 arg1, T2 arg2 ) 类型参数 in ...

  2. 一步步编写avalon组件01:弹出层组件

    avalon2已经稳定下来,是时候教大家如何使用组件这个高级功能了. 组件是我们实现叠积木开发的关键. avalon2实现一个组件非常轻松,并且如何操作这个组件也比以前的avalon2,还是react ...

  3. jQuery之ajax的跨域获取数据

    如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型.使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面.服务 ...

  4. Android 下拉刷新框架实现

    原文地址:http://blog.csdn.net/leehong2005/article/details/12567757 前段时间项目中用到了下拉刷新功能,之前在网上也找到过类似的demo,但这些 ...

  5. Ruby-打包程序

    1.下载 ocra-1.3.1.gem 文件 2.打开“start Command prompt with ruby”  命令窗口 3.输入 “gem install e:\ocra-1.3.1.ge ...

  6. Spring aop——前置增强和后置增强 使用注解Aspect和非侵入式配置

    AspectJ是一个面向切面的框架,它扩展了java语言,定义了AOP语法,能够在编译期提供代码的织入,所以它有一个专门的编译器用来生成遵守字节码字节编码规范的Class文件 确保使用jdk为5.0以 ...

  7. MFC 配合 protobuff libevent 实现的Socket 的GM工具 框架

    MFC 配合 protobuff libevent 实现的Socket 的GM工具 框架

  8. JNI Local Reference Changes in ICS

    [This post is by Elliott Hughes, a Software Engineer on the Dalvik team. — Tim Bray] If you don’t wr ...

  9. LeetCode OJ 331. Verify Preorder Serialization of a Binary Tree

    One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, ...

  10. ubuntu 16.04软件源

    来源:模板:16.04source   deb http://cn.archive.ubuntu.com/ubuntu/ xenial main restricted universe multive ...