create or replace function mcode_apply_insert_material(p_mca_no       VARCHAR2,
p_action VARCHAR2,
p_wf_node_code VARCHAR2) RETURN VARCHAR2 AS -- 函数作用:当物料申请审核通过之后,将物料申请表中的数据插入到物料管理表中 v_material_code MCA_DETAIL.MATERIAL_CODE%TYPE;
v_material_name MCA_DETAIL.MATERIAL_NAME%TYPE;
v_partner MCA_DETAIL.PARTNER%TYPE;
v_manufaturer MCA_DETAIL.MANUFATURER%TYPE;
v_specification MCA_DETAIL.SPECIFICATION%TYPE;
v_unit MCA_DETAIL.UNIT%TYPE;
v_remark MCA_DETAIL.REMARK%TYPE; CURSOR get_final_supplies_data IS
SELECT m.material_code,m.material_name,m.partner,m.manufaturer,m.specification,m.unit,m.remark
FROM MCA_DETAIL m
WHERE m.mca_no = p_mca_no; BEGIN
IF p_action = '' AND p_wf_node_code = 2 THEN -- 工作流 ,如果在2节点 审核通过“03”,执行下面语句
OPEN get_final_supplies_data;
LOOP -- loop exit when ...%notfound:遍历(循环)
FETCH get_final_supplies_data INTO v_material_code,v_material_name,v_partner,v_manufaturer,v_specification,v_unit,v_remark;
exit when get_final_supplies_data%notfound; -- 当get_final_supplies_data遍历完后,退出循环,执行下面的语句
  -- material:物料管理表
  INSERT INTO material(material_code,partner,specification,material_name,unit_of_measurement,remark,manufaturer)
  VALUES(v_material_code,v_partner,v_specification,v_material_name,v_unit,v_remark,v_manufaturer); END LOOP; -- 结束循环
CLOSE get_final_supplies_data; END IF; RETURN ''; end mcode_apply_insert_material;

注:如需测试该函数,请复制到Oracle数据库中,右击函数名“mcode_apply_insert_material”,选择“test” 进行测试,测试时记得把相应的表名及字段换成自己建立的

原创作者:DSHORE

出处:http://www.cnblogs.com/dshore123/

欢迎转载,转载务必说明出处。(如果本文对你有用,可以点击一下右下角的 推荐,谢谢!

Oracle 函数 “申请通过后,将该表中循环遍历到的所有内容插到另一个表中”的更多相关文章

  1. ZeroMQ接口函数之 :zmq_msg_copy - 把一个消息的内容复制到另一个消息中

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_copy zmq_msg_copy(3)   ØMQ Manual - ØMQ/3.2.5 Name zm ...

  2. SQL将一个表中的某一列值全部插入到另一个表中

    1.  SQL将一个表中的某一列值全部插入到另一个表中 插入的话: insert into a(col) select col from b; 更新的话: update a set col=selec ...

  3. SQL中如何将一个表中的某一列的数据复制到另一个表中的某一列里

    表一: SPRD PRD_NO      SPC 001                NULL 002               NULL 003               NULL ...   ...

  4. Oracle 中循环遍历某张表,并对符合条件的进行Update操作

    BEGIN FOR L_RECORD IN (select RECORD_ID,CURR_PERIOD,PERIOD_START_DATE, (sysdate- PERIOD_START_DATE) ...

  5. 【Sql Server】使用触发器把一个表中满足条件的数据部分字段插入到另一个表中

    create trigger 触发器名称 on 对哪个表起作用 after insert,update as return set nocount on begin transaction; inse ...

  6. sql 中如何查询某一列的数据在另一个表中有没有?

    假设表table1,列a,表table2,列bselect a from table1where a not in(select b from table2)

  7. 把内表 itab1 的 n1 到 n2 行内容附加到 itab2 内表中去.

    语法:append lines of itab1 [ from n1 ] [ to n2 ] to itab2. DATA:BEGIN OF gt_00 OCCURS 0,        l_01   ...

  8. delete表1条件是另一个表中的数据,多表连接删除(转)

    DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 from t1 where 条件 3. ...

  9. SQL中锁表语句简单理解(针对于一个表)

    锁定数据库的一个表 复制代码代码如下: SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 复制代码代码如下: SELECT * FROM tab ...

随机推荐

  1. android与H5互相调用

    市面上很多android软件都有内嵌H5的,主要是为了节约成本,提高开发效率,其实现原理主要是通过Java代码和JavaScript代码的互相调用来实现. Java调用Js 1,webview初始化: ...

  2. 【树上莫队】【SP10707】 COT2 - Count on a tree II

    Description 给定一棵 \(n\) 个点的树,每个节点有一个权值,\(m\) 次询问,每次查询两点间路径上有多少不同的权值 Input 第一行是 \(n\) 和 \(m\) 第二行是 \(n ...

  3. python之旅:并发编程之多进程理论部分

    一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任 ...

  4. An internal error occurred during: "Initializing Java Tooling". Eclipse启动发生的错误及解决办法

    1.关闭Eclipse.有时候不关闭eclipse 删除东西会引起其他莫名的错误. 2.删除 当前工作目录文件夹下的 /.metadata/.plugins/org.eclipse.core.reso ...

  5. U45490 还没想好名字的题Ⅱ

    这一题的环状板 Solution 暴力断环为链, 枚举起点跑 \(n\) 遍 \(DP\), 取最小值即可 Code #include<iostream> #include<cstd ...

  6. 两个button之间的间距如何去掉

    在外层加上一个父元素,设置font-size:0;即可. 两个按钮之间的间距如何去掉

  7. JAVA-JSP隐式对象

    JSP隐式对象 在本章中,我们将讨论和学习JSP中的隐式对象.这些对象是JSP容器为每个页面中的开发人员提供的Java对象,开发人员可以直接调用它们而不用显式地声明它们再调用. JSP隐式对象也称为预 ...

  8. [LeetCode] 208. Implement Trie (Prefix Tree) ☆☆☆

    Implement a trie with insert, search, and startsWith methods. Note:You may assume that all inputs ar ...

  9. iOS二维码扫描的实现(Swift)

    随着二维码的普遍使用,二维码扫描也成为了很多app的一个基本功能,本篇主要来介绍一下如何实现一个简单的二维码扫描功能.本文使用了XCode自带的AVFoundation 库,利用Swfit语言实现. ...

  10. 兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法

    兼容firefox,ie,谷歌,阻止浏览器冒泡事件,Firefox不支持event解决方法 // 获取事件function getEvent(){ if(window.event) {return w ...