zoukankan      html  css  js  c++  java
  • Oracle 函数 “申请通过后,将该表中循环遍历到的所有内容插到另一个表中”

     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/

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

  • 相关阅读:
    WinForm窗体传值 总结
    SQLServer遍历数据库所有表及统计表数据总数
    GridView合并行代码
    日期转换成字符串
    flex与js交互浅析
    九,query task
    八,graphics
    十,Find and Identity
    转移批令
    db dw dd 和 dup
  • 原文地址:https://www.cnblogs.com/dshore123/p/7825427.html
Copyright © 2011-2022 走看看