Oracle 函数 “申请通过后,将该表中循环遍历到的所有内容插到另一个表中”
2017-11-13 11:11
411 查看
1 create or replace function mcode_apply_insert_material(p_mca_no VARCHAR2, 2 p_action VARCHAR2, 3 p_wf_node_code VARCHAR2) 4 5 RETURN VARCHAR2 AS -- 函数作用:当物料申请审核通过之后,将物料申请表中的数据插入到物料管理表中 6 7 v_material_code MCA_DETAIL.MATERIAL_CODE%TYPE; 8 v_material_name MCA_DETAIL.MATERIAL_NAME%TYPE; 9 v_partner MCA_DETAIL.PARTNER%TYPE; 10 v_manufaturer MCA_DETAIL.MANUFATURER%TYPE; 11 v_specification MCA_DETAIL.SPECIFICATION%TYPE; 12 v_unit MCA_DETAIL.UNIT%TYPE; 13 v_remark MCA_DETAIL.REMARK%TYPE; 14 15 16 CURSOR get_final_supplies_data IS 17 SELECT m.material_code,m.material_name,m.partner,m.manufaturer,m.specification,m.unit,m.remark 18 FROM MCA_DETAIL m 19 WHERE m.mca_no = p_mca_no; 20 21 BEGIN 22 IF p_action = '03' AND p_wf_node_code = 2 THEN -- 工作流 ,如果在2节点 审核通过“03”,执行下面语句 23 OPEN get_final_supplies_data; 24 LOOP -- loop exit when ...%notfound:遍历(循环) 25 FETCH get_final_supplies_data INTO v_material_code,v_material_name,v_partner,v_manufaturer,v_specification,v_unit,v_remark; 26 exit when get_final_supplies_data%notfound; -- 当get_final_supplies_data遍历完后,退出循环,执行下面的语句 27 -- material:物料管理表 28 INSERT INTO material(material_code,partner,specification,material_name,unit_of_measurement,remark,manufaturer) 29 VALUES(v_material_code,v_partner,v_specification,v_material_name,v_unit,v_remark,v_manufaturer); 30 31 END LOOP; -- 结束循环 32 CLOSE get_final_supplies_data; 33 34 END IF; 35 36 RETURN '0'; 37 38 end mcode_apply_insert_material;
注:如需测试该函数,请复制到Oracle数据库中,右击函数名“mcode_apply_insert_material”,选择“test” 进行测试,测试时记得把相应的表名及字段换成自己建立的
原创作者:DSHORE 出处:http://www.cnblogs.com/dshore123/ 欢迎转载,转载务必说明出处。(如果本文对你有用,可以点击一下右下角的 推荐,谢谢!) |
相关文章推荐
- 通过游标循环遍历表所有字段
- 客户应用程序调用COM API CoFreeUnusedLibraries()时,COM库遍历这个客户端应用已加载所有的DLL服务器并通过调用它的DllCanUnloadNow()函数查询每一个服务器
- JSP 页面通过 ognl 标签遍历集合中的所有内容
- PHP遍历一个文件夹下所有文件和子文件夹的函数
- 循环取出正则匹配的内容(遍历).
- each()方法能使DOM循环结构简洁。each()函数的遍历,each()遍历一维数组、多维数组。
- java通过流把一个文件的内容写到另一个文件中
- 通过自执行函数解决,for循环变量泄漏的问题
- js数组循环遍历数组内所有元素的方法
- Windows API函数删除指定文件目录下所有内容vc6.0通过
- angularjs2版本创建一个数组,将数组里面的内容通过数据绑定的形式循环到table表单中
- oracle通过表中2个字段分组查询取数量最大的所有记录,有条件的去重
- Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包
- NGUI查找子节点下的所有组件并且循环遍历销毁
- 遍历所有文件和目录的函数
- 利用SYS_CONTEXT函数跟踪oracle字段内容无故改变
- smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
- smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
- Python通过递归遍历出集合中所有元素的方法
- 删除文件夹及文件夹内部所有内容的标准函数