使用存储过程批量更新单表中的数据

简介: 使用存储过程批量更新单表中的数据

代码实例


declare
    v_info_type_code varchar(12);
    v_info_number varchar(8);
    n_info_type_code NUMBER(12);
    n_info_number NUMBER(8);
    ser_num  number;
    deal_num number;
    v_num number;
begin
  ser_num := 1;
  --查询需要更新数据的条数
  select count(*) into v_num from POINTS_SPACE_INVOICE_HEAD t where t.info_print_flag is not null;
  --获取到需要更新的数据,并进行遍历
  for cur in (select t.id ,t.info_type_code,t.info_number from POINTS_SPACE_INVOICE_HEAD t where t.info_print_flag is not null)
    loop
      v_info_type_code := cur.info_type_code;
      v_info_number := cur.info_number;
      if ser_num < v_num then
        --将发票代码与发票号码做递增处理
        n_info_type_code := to_number(v_info_type_code)+ser_num;
        n_info_number := to_number(v_info_number)+ser_num;
        --长度进行限制,不足左边补0
        v_info_type_code := lpad(n_info_type_code,12,'0');
        v_info_number := lpad(n_info_number,8,'0'); 
        --执行更新处理
        update points_space_invoice_head h set h.info_type_code = v_info_type_code,h.info_number = v_info_number where h.id = cur.id;
        deal_num := sql%rowcount;
        commit;
        --更新成功,变量加1
        if deal_num = 1 then
          ser_num := ser_num + 1;
        end if;
      end if;
    end loop;
end;


相关文章
|
3月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
5月前
|
存储 SQL 关系型数据库
18. Mysql 存储过程,实现动态数据透视
18. Mysql 存储过程,实现动态数据透视
37 1
|
6月前
|
存储 SQL Oracle
Oracle存储过程:数据王国的魔法师
【4月更文挑战第19天】Oracle存储过程是封装复杂SQL操作的魔法工具,存储在数据库中以便重复调用。它们提供高效执行和安全,类似于预编译的程序。创建存储过程涉及定义名称和参数,如示例所示,创建一个根据员工ID获取姓名和薪资的`get_employee_info`过程。调用存储过程可提高代码可读性和性能,使数据库管理更为便捷。
|
6月前
|
存储 关系型数据库 分布式数据库
PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据
我们在测试数据库性能的过程中,通常需要生成一批测试数据。 以前,一般要写一段程序或者脚本来完成这项工作,但现在是2024年啦!时代变了!
PolarDB-X最佳实践系列(五):使用通义千问和存储过程快速生成测试数据
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (下)
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (下)
|
存储 SQL 数据库连接
SqlServer存储过程应用二:分页查询数据并动态拼接where条件 (上)
SqlServer存储过程应用二:分页查询数据并动态拼接where条件
|
存储 程序员
SQLServer存储过程自制数据字典
SQLServer存储过程自制数据字典
|
存储 关系型数据库 MySQL
MySQL存储过程——批量插入数据
MySQL存储过程——批量插入数据
1236 0
MySQL存储过程——批量插入数据
|
存储 关系型数据库 MySQL
【MySQL】使用存储过程+IF控制语句批量添加数据
【MySQL】使用存储过程+IF控制语句批量添加数据
277 0
【MySQL】使用存储过程+IF控制语句批量添加数据
|
存储 关系型数据库 MySQL
mysql数据库编写存储过程实现批量插入1000万条数据
mysql数据库编写存储过程实现批量插入1000万条数据
698 0
mysql数据库编写存储过程实现批量插入1000万条数据