zoukankan      html  css  js  c++  java
  • Oracle游标、参数的使用例子

    /// <summary>
    /// 总部审核
    /// </summary>
    /// <param name="ht"></param>
    /// <returns></returns>
    public int Update(Hashtable ht)
    {
    //修改
    StringBuilder sb = new StringBuilder();
    sb.Append("declare ");
    sb.Append("n_id number; ");
    sb.Append("n_branch_id number; ");
    sb.Append("n_stock_exist_count number; ");
    sb.Append("n_stock number; ");
    sb.Append("v_code varchar2(50); ");
    sb.Append("cursor parts_apply_refer_data is select parts_id,fact_send_count,fact_receive_count,send_add_count,bohui_count from t_parts_apply_refer where apply_id=:apply_id; ");
    sb.Append(" parts_apply_refer_row parts_apply_refer_data%rowtype; ");
    sb.Append("begin ");
    sb.Append("lock table t_parts_stock in share mode wait 10; ");
    sb.Append("lock table t_newparts_apply in share mode wait 10; ");
    sb.Append("select id into n_id from t_parts_check where apply_id=:apply_id; ");
    sb.Append("select branch_id,apply_code into n_branch_id,v_code from t_newparts_apply where id=:apply_id; ");
    sb.Append("update t_parts_check set identify_audit_result=:identify_audit_result,identify_status=:identify_status,update_person=:update_person,update_time=sysdate where apply_id=:apply_id; ");
    sb.Append("update t_newparts_apply set status = :parts_apply_status , update_person=:update_person,update_time=sysdate where id = :apply_id; ");

    //审核通过,库存加入坏件
    if (ht["parts_apply_status"].ToString()=="12")
    {
    sb.Append(" for parts_apply_refer_row in parts_apply_refer_data loop "); //循环遍历配件申请配件表中每一行数据
    sb.Append("n_stock_exist_count:=0; ");
    sb.Append("if parts_apply_refer_row.bohui_count>0 then "); //只有驳回大于0的记录才能入库
    sb.Append("select count(0),max(stock_count) into n_stock_exist_count,n_stock from t_parts_stock where branch_id=n_branch_id and parts_id=parts_apply_refer_row.parts_id and return_type=2; ");
    sb.Append("if n_stock_exist_count>0 then "); //如果说当前库存这条记录的库存数大于0就更新库存
    sb.Append("update t_parts_stock set stock_count=stock_count+parts_apply_refer_row.bohui_count,update_time=sysdate where branch_id=n_branch_id and parts_id=parts_apply_refer_row.parts_id and return_type=2; ");
    sb.Append("insert into t_parts_in_out_history (id,part_id,parts_class,in_out_type,in_out_count,branch_id,precedure_code,operation_time,operation_person,remark,current_stock) values (seq_parts_his.nextval,parts_apply_refer_row.parts_id,2,1,parts_apply_refer_row.bohui_count,n_branch_id,v_code,sysdate,:update_person,'收件异常入库',n_stock+parts_apply_refer_row.bohui_count); ");
    sb.Append("else "); //否则添加当前库存这条记录的相关信息
    sb.Append("insert into t_parts_stock (id,parts_id,branch_id,repair_id,stock_count,alarm_count,return_type,update_time) values (seq_parts_stock.nextval,parts_apply_refer_row.parts_id,n_branch_id,null,parts_apply_refer_row.bohui_count,1,2,sysdate); ");
    sb.Append("insert into t_parts_in_out_history (id,part_id,parts_class,in_out_type,in_out_count,branch_id,precedure_code,operation_time,operation_person,remark,current_stock) values (seq_parts_his.nextval,parts_apply_refer_row.parts_id,2,1,parts_apply_refer_row.bohui_count,n_branch_id,v_code,sysdate,:update_person,'收件异常入库',parts_apply_refer_row.bohui_count); ");
    sb.Append("end if; ");
    sb.Append("end if; ");
    sb.Append("end loop; ");
    }
    //添加流程
    sb.Append("insert into t_procedure_log (procedure_type,refer_id,status,handle_person,handle_time,remark) values (2,:apply_id,:parts_apply_status,:update_person,sysdate,:identify_audit_result); ");
    sb.Append("insert into t_procedure_log (procedure_type,refer_id,status,handle_person,handle_time,remark) values (7,n_id,:identify_status,:update_person,sysdate,:identify_audit_result); ");

    sb.Append("end; ");
    return oc.Execute(sb.ToString(),ht);
    }

    作者:Cboii

    本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。

    由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。

    在wordpress安装、主题、插件以及开发上面有问题的,可以加入qq群:1140958614(Wp建站每日学习/交流群)进行学习和提问

    如果需要建站服务,可以直接联系我的qq:185369045

  • 相关阅读:
    反转链表 16
    CodeForces 701A Cards
    hdu 1087 Super Jumping! Jumping! Jumping!(动态规划)
    hdu 1241 Oil Deposits(水一发,自我的DFS)
    CodeForces 703B(容斥定理)
    poj 1067 取石子游戏(威佐夫博奕(Wythoff Game))
    ACM 马拦过河卒(动态规划)
    hdu 1005 Number Sequence
    51nod 1170 1770 数数字(数学技巧)
    hdu 2160 母猪的故事(睡前随机水一发)(斐波那契数列)
  • 原文地址:https://www.cnblogs.com/chenboyi081/p/4165632.html
Copyright © 2011-2022 走看看