`
zhuguo_guo
  • 浏览: 14138 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle存储过程带游标例子

 
阅读更多
create or replace procedure sum_storage 
is
    plant  g_containerinv.plant%type;
    sloc   g_containerinv.sloc%type;
    part   g_containerinv.partno%type;
    qty    g_containerinv.qty%type;
 
  cursor c_sumqty
    is
  select plantid,whid,partno,sum(qtyperuom) as totalqty from g_container group by plantid,whid,partno;
   
 vr_intoqty   c_sumqty%rowtype;            

begin
   open c_sumqty;
    loop
     fetch c_sumqty   into vr_intoqty;

      exit when c_sumqty%notfound;
   
        plant:  = vr_intoqty.plantid;
         sloc:  = vr_intoqty.whid;
         part:  = vr_intoqty.partno;
          qty:  = vr_intoqty.totalqty;
   
    insert into g_containerinv(timekey, plant, sloc, partno, qty, editdate, operater) 
    values (to_char(sysdate,'yyyymmddhh24miss'),plant,sloc,part,qty,sysdate,'wms');
 
    end loop;
 
   close c_sumqty;
 commit;
  
end sum_storage;
/

---------
CREATE OR REPLACE PROCEDURE add_sup_temp IS
  v_group_id  sup_temp.group_id % TYPE;
  v_item_id   sup_temp.item_id % TYPE;
  v_item_name sup_temp.item_name % TYPE;
  v_cnt_group NUMBER(4);

  CURSOR c_product_group IS
    SELECT group_id, item_id, lang, item_name, classify_id, parent_item
      FROM viewA;

  CURSOR c_groupCursor(p_group_id sup_acl_product_group.group_id % TYPE) IS
    SELECT group_id FROM tableB;

BEGIN
  DELETE FROM sup_acl_product_group;
  OPEN c_product_group;
  LOOP
    FETCH c_product_group
      INTO v_group_id, v_item_id, v_item_name;
    EXIT WHEN c_product_group%NOTFOUND;
  
    OPEN c_groupCursor(v_group_id);
    LOOP
      FETCH c_groupCursor
        INTO v_c_group_id;
      EXIT WHEN c_groupCursor%NOTFOUND;
    
      SELECT COUNT(group_id)
        INTO v_cnt_group
        FROM sup_acl_product_group pg
       WHERE pg.group_id = v_c_group_id
         AND pg.item_id = v_item_id;
      IF v_cnt_group <> 0 THEN
        UPDATE sup_acl_product_group pg SET pg.last_update_time = sysdate;
      ELSE
        INSERT INTO sup_acl_product_group
          (group_id, item_id, item_name, last_update_time)
        VALUES
          (v_c_group_id, v_item_id, v_item_name, sysdate);
      END IF;
    END LOOP;
    CLOSE c_groupCursor;
  END LOOP;
  CLOSE c_product_group;
  COMMIT;

END;


create or replace procedure p_tmp
begin
  declare
    cursor c_cur is
           select  st.business_id            as business_id,
                      st.userid       as userid,
                      st.end_date        as end_date,
                      st.creation_date  as creation_date
        from tableH st
       where 1=1;
         
    v_row                c_cur%rowtype;
    v_business_id_t      varchar2(200);
  begin
    open c_cur;
    loop
      fetch c_cur
        into v_row;
    
      exit when c_cur%notfound;
    
      select count(n.business_id)
        into v_business_id_t
        from tableM n
       where n.business_id = v_row.business_id
         and n.userid = v_row.userid;
    
      if v_business_id_t = 0 then
        insert into tableN
          (business_id, userid, end_date, creation_date)
        values
          (v_row.business_id,
           v_row.userid,
           v_row.end_date,
           v_row.creation_date);
      
      end if;
    
      if v_business_id_t > 0 then
        update tableN t
           set t.end_date = v_row.end_date
         where t.business_id = v_row.business_id
           and t.userid = v_row.userid;
      end if;
    end loop;
  
    close c_cur;
    commit;
  end;
exception
  when others
  
   then
    rollback;
    dbms_output.put_line('异常啦');
end;
分享到:
评论

相关推荐

    oracle存储过程使用游标对多表操作例子

    oracle存储过程使用游标对多表操作例子

    利用游标返回结果集的的例子(Oracle 存储过程).doc

    利用游标返回结果集的的例子(Oracle 存储过程).doc 利用游标返回结果集的的例子(Oracle 存储过程).doc 利用游标返回结果集的的例子(Oracle 存储过程).doc

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传参数包括游标类型)

    oracle 存储过程 案例

    oracle 存储过程 案例 游标 从入门到精通 36个源码例子 值得收藏

    Oracle存储过程游标用法分析

    本文实例讲述了Oracle存储过程游标用法。分享给大家供大家参考,具体如下: 使用游标的5个步骤 1、声明一些变量用于保存select语句返回的指 2、声明游标,并指定select 语句 3、打开游标 4、从游标中获取记录 5、...

    groovy将JDBC中oracle存储过程游标转换为多层json

    本例是我工作中的一些实操例子,亦是我工作日志,记录在此,既可作为我自己的总结,也可以此分享给同行借鉴。...2.创建oracle存储过程脚本 3.JDBC调用存储过程语句 4.创建Groovy脚本 5.xml入参示例 6.json出参示例

    jdbc连接例子 Oracle CLOB转换为String java调用存储过程之输出游标

    NULL 博文链接:https://vernonchen163.iteye.com/blog/1902788

    oracle多个过程例子

    程序包及包主体.sql 存储过程.sql 带inout参数存储过程.sql 带游标的存储过程.sql 函数.sql

    oracle 存储过程和函数例子

    作者:peace.zhao 关于 游标 if,for 的例子 create or replace procedure peace_if is cursor var_c is select * from grade; begin for temp in var_c loop if temp.course_name = ‘OS’ then dbms_output.put_line...

    oracle的plsql的一些基本操作例子

    文档中写了包括的表空间的创建、表的创建、增删改操作、存储过程、游标、函数、触发器及类型等相关的例子,希望能给初学者一定的帮助

    超详细Oracle教程 115页讲解以及例子

    超详细Oracle教程 115页讲解以及例子 Oracle的管理技术,由实验1~实验6组成,包括数据库管理、角色和用户管理、表和视图管理、索引和序列管理、PL/SQL编程、以及使用游标、存储过程和触发器等内容 很全

    Oracle入门实例

    适用于刚入门oracle的同志,包括表,视图,函数,游标,存储过程的创建,例子简单易懂,注释详细,不要错过!

    大数据Oracle理论+SQL+面试问题汇总+BI理论

    本课程适应从事大数据行业开发人员或数据库开发人员以及BI开发人员,其中包含有ORACLE的理论基础知识,OracleSQL语句详细讲解...从SQL句子的讲解到函数、游标、存储过程、序列等进行了例子讲解。如果你现在从事的行业有

    oracle学习资料

    §6.3.3 开发存储过程步骤 13 §6.3.4 与过程相关数据字典 13 第七章 包的创建和应用 13 §7.1 引言 13 §7.2 包的定义 13 §7.3 包的开发步骤 13 §7.4 包定义的说明 13 §7.5 子程序重载 13 §7.6 删除过程、函数...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

    并在Oracle11g的环境中,对书中的全部例子进行了运行(其中大部分例子都以具体操作界面的形式添加到书中),以给读者构造一个真实、有序、合理、坚实、正确和专业的Oracle知识结构。  《Oracle11g宝典》是Oracle...

    plsql_oracle 编程

    §6.3.3 开发存储过程步骤 13 §6.3.4 与过程相关数据字典 13 第七章 包的创建和应用 13 §7.1 引言 13 §7.2 包的定义 13 §7.3 包的开发步骤 13 §7.4 包定义的说明 13 §7.5 子程序重载 13 §7.6 删除过程、函数...

    plsql_oracle 8i 编程讲义

    §6.3.3 开发存储过程步骤 13 §6.3.4 与过程相关数据字典 13 第七章 包的创建和应用 13 §7.1 引言 13 §7.2 包的定义 13 §7.3 包的开发步骤 13 §7.4 包定义的说明 13 §7.5 子程序重载 13 §7.6 删除过程、函数...

    Oracle数据库SQL和PL/SQL实例教程

    Oracle数据库SQL和PL/SQL实例教程 非常适用于初学者。结合例子深刻形象的讲解。 第1章 关系数据库与SQL语言环境 第2章 数据查询 ...第8章 存储过程、函数和包 第9章 触发器 第10章 数据库开发应用实例

Global site tag (gtag.js) - Google Analytics