Oracle使用游标批量更新表数据

使用游标更新数据库 立即下载

Oracle使用游标批量更新表数据:

BEGIN
FOR JSC IN
  (
	SELECT JS.*
	  FROM SF_JMMJJS_T JS,SF_EBZCB_T CB,SF_JMYH_T YH
	 WHERE 
	 JS.YHBH=CB.YHBH AND JS.MJBH=CB.MJBH AND JS.CNQ=CB.CNQ
	 AND JS.YHBH=YH.YHBH
	AND JS.YSJE = 0
	AND JS.SFMJ>0
	 AND JS.GNZT = '正常'
	 AND JS.ZF = 0
	 AND JS.CNQ = '2016-2017'
	 AND CB.ZT=2
	 AND YH.SFEBZ='是'
	AND YH.ZF=0
	AND YH.GNZT = '正常'
  )LOOP
UPDATE SF_JMMJJS_T 
SET YSJE=(CASE WHEN ROUND(JSC.MJYS*JSC.JSBL+JSC.JLYS,0)>JSC.MJYS 
	THEN JSC.MJYS 
  ELSE 
	 ROUND(JSC.MJYS*JSC.JSBL+JSC.JLYS,0) 
  END)
WHERE SF_JMMJJS_T.BH=JSC.BH;
END LOOP;
END;	
COMMIT;

补充:

游标的另一种写法:

简单写个结构

CREATE OR REPLACE FUNCTION SF_ZNJ_F
(
  V_YHLX VARCHAR2, --用户类型
  V_MJBH SF_JMSF_T.YHBH%TYPE, --用户编号
  V_FYLB SF_JMSF_T.FYLB%TYPE, --费用类别
  V_JSRQ SF_JMSF_T.JFRQ%TYPE, --交费日期
  V_CNQ  SF_JMSF_T.CNQ%TYPE
) RETURN NUMBER IS

  V_MIDDATE DATE;
  RESULT    NUMBER;
  --查询开始计算滞纳金开始之后是否有交费
  CURSOR JMMJJF_C IS
    SELECT JFRQ, JFJE, ZNJ
    FROM SF_JMSF_T
    WHERE JFRQ > V_KSRQ AND CNQ = V_CNQ AND YHBH = V_YHBH AND ZF = 0 AND
          FYLB = V_FYLB
    ORDER BY JFRQ;

BEGIN
  
      OPEN JMMJJF_C;
    
      FETCH JMMJJF_C
        INTO V_JFRQ, V_JFJE, V_ZNJ;
      --如果没有交费记录
      IF JMMJJF_C%NOTFOUND THEN
       XXXXXX
      END IF;
       
      ELSE
        
        --如果有交费记录
        WHILE JMMJJF_C%FOUND LOOP
          XXXXX
          FETCH JMMJJF_C
            INTO V_JFRQ, V_JFJE, V_ZNJ;
        END LOOP;
        
    
      CLOSE JMMJJF_C;
     
END SF_ZNJ_F;

从零构建腾讯滑块验证码破解引擎:逆向工程与实战对抗 本文深入解析腾讯滑块验证码(原天御验证码)的防护机制,包括环境感知层、行为分析层和验证决策层的核心技术。通过JSVMP虚拟机保护、轨迹验证算法和动态加密体系,腾讯验证码实现了高效的人机识别。文章还提供了安全研究实践指南,涵盖环境模拟和验证码识别方案,并探讨了防御对抗的演进趋势与合规研究建议。 阅读详情

相关推荐

告别第三方应用!用Android原生API搭建Miracast投屏接收器

本文深入探讨如何利用Android原生API开发Miracast接收器,绕过第三方依赖,实现高效的屏幕共享。通过Wi-Fi P2P直连、反射调用隐藏API和RTSP会话协商等核心技术,为开发者提供了一套完整的Miracast接收端解决方案,适用于多屏协同场景。

weixin_29174141的博客 394

oracle使用游标方式批量更新数据

oracle批量更新。

青春不打烊的博客 2058

车窗标定工作流程

标定简单来说就是修改防夹参数来适配对应的车型,所有的防夹的参数在vers_userdef.h文件中定义。#标定内容。

qq_21274991的博客 4272

通过使用Oracle存储过程和游标实现复杂更新逻辑

介绍了Oracle存储过程和游标相关知识,并且结合两者实现较为复杂更新

qq_39581142的博客 1318

5、基于模型的系统工程(MBSE)全面解析

本文全面解析了基于模型的系统工程(MBSE),介绍了模型在系统工程中的核心地位,以及如何通过视图和符号表示法实现信息的可视化。文章还详细阐述了MBSE的方法构成,包括框架(本体和视图点)和流程集,探讨了MBSE的实施流程、关键要素、应用策略以及未来发展趋势。通过合理应用MBSE,组织可以提高系统开发的效率和质量,降低成本与风险,实现成功部署。

nft7creator的博客 127

十分钟搞定! DeepSeek本地部署详细指南!

保姆级教程,三步搞定deepseek本地部署,不求人!

一个喜欢诗和远方的程序媛 4347

Oracle游标批量提交,解决更新大批量数据耗尽内存的问题

Oracle 更新数据时,数据库会对整个更新动作做一个事务,如果一次更新的记录太大会用完内存,导致影响业务运行。我们要更新某个渠道的订单的所有商品的价格,我们每2万行提交一次。思路就是用游标处理每条数据,安需批量提交。

lxcsifu的专栏 1269

「JS逆向三百例」JS逆向HIKVISION-视频监控的前端密码加密

本文详细分析了HIKVISION-海康威视监控前端登录过程中密码的加密机制,通过逆向工程解析了其 JavaScript 加密逻辑,重点研究了HIKVISION-海康威视监控的前端密码SHA256加密算法的实现。基于逆向分析结果,使用 Python 模拟了HIKVISION-海康威视监控的登录流程,最终实现了自动化登录功能。本文旨在为安全研究人员提供技术参考,帮助理解前端加密机制,并强调技术研究的合法性和合规性。

布啦啦 1100

oracle用游标更新表,Oracle Procedure中使用游标cursor更新多表

Oracle中写Procedure一直是Oracle开发中比较复杂的地方,但是掌握procedure 和cursor将使得你在Oracle开发中如鱼的水,真正体会Oracle的强大。下面通过我自己写的一个Procedure简单就procedure和cursor的使用给一个简单的讲解和示例。一、描述问题我要解决的问题是使用Oracle作为数据库开发一套人力资源管理系统,在这个系统中每天员工的考勤数据...

weixin_39521808的博客 613

x265开源编码器源码框架深度解析

x265开源编码器源码框架深度解析

世界那么大,我想去看看~【随心更新,看世界去了😄】 669

基于STM32LXXX的模数转换芯片ADC(CMS24AD2001)驱动C程序设计

/ 电压 = (原始值 / 2^23) * Vref (注意:24位有符号数范围为 -2^23 到 2^23-1)//---------------- 硬件端口映射 (请根据实际电路修改) ----------------ADC_SCLK_HIGH();- PGA 放大倍数可选:1、2、4、8、16、32、64、128、256;//---------------- 宏定义操作 -------------------//---------------- 函数声明 -------------------

myron6688的博客 161

Oracle使用游标更新数据

使用游标修改数据定义一个游标,游标名称为 mycursor更新scott用户中emp表中empno为7369的销售额-- Created on 2015/11/30 by ZHANW declare he emp%rowtype; cursor mycursor(pid integer) is select * from emp where empno = pid for update;......

架构师实战感悟 9896

YOLOv5算法改进(22)— 更换主干网络MobileNetv3 + 添加CA注意力机制

本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络MobileNetv3 + 添加CA注意力机制),小白必学~!🌈

小哥谈 2817

PLSQL使用游标进行批量更新的方式

–隐式游标_单笔处理 BEGIN FOR rec IN (SELECT e.empno, e.sal FROM emp e) LOOP UPDATE emp e SET e.sal = rec.sal + 1 WHERE e.empno = rec.empno; COMMIT; END LOOP; END; –隐式游标_多笔处理 DECLARE l_count NUMBER; BEGIN l_count := 0;

weixin_44079435的博客 1310

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

oracle怎么执行存储过程_Oracle使用游标及存储过程更改数据

Oracle 可以使用游标及存储过程,批量更新表中的数据,具体方式如下:SQL >declare v_id EMP.EMPNO%type; v_sal EMP.SAL%type; cursor cur is select EMPNO, SAL from EMP;begin open cur; loop fetch cur into v_id, v_sal; EXIT WHEN cur%NO...

weixin_39992660的博客 551

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

批量游标处理大数据

--批量游标处理大数据 declare   type t_rid is table of rowid index by binary_integer;   l_t_rid t_rid;   cursor cur_rid is(     select rowid from bigtable where owner = 'SCOTT');   ln_rowcnt numbe

执着_QQ的专栏 1226

Oracle 2张表关联更新表信息的四个SQL

Oracle数据库中2张表T_1和表T_2,T_1信息需要根据T_2表信息进行批量变更,2张表根据ID进行关联。 1.创建2张表,没有设置主键create table T_1 (   ID    NUMBER(2),   YEAR  VARCHAR2(20),   MONTH VARCHAR2(10)  ); create table T_2 (   ID    NUMBER(2

ZLHZHJ的专栏 5397

oracle 批量更新四种方法比较

转ORACLE批量更新四种方法比较软件环境 Windows 2000 + ORACLE9i 硬件环境 CPU 1.8G + RAM 512M现在我们有2张表 如下: T1–大表 10000笔 T1_FK_ID T2–小表 5000笔 T2_PK_ID T1通过表中字段ID与T2的主键ID关联模拟数据如下: –T2有5000笔数据 create table T2 as selec

Java菜鸟 7803

oracle使用游标批量删除数据,oracle 游标批量处理数据

declare--开始时间v_date_start date:= to_date('2015-05-28 00:00:00','yyyy-mm-dd hh24:mi:ss');--结束时间v_date_end date:= to_date('2015-11-01 00:00:00','yyyy-mm-dd hh24:mi:ss');--临时变量v_date_plus date;type type...

weixin_39908106的博客 537

oracle利用游标数据初始化

DECLARE   V_NUM NUMBER;   CURSOR CARDINFO IS     SELECT MS.ID,            MS.CARD_ID_DEC,            MS.CARD_ID_DEX,            MS.UMID,            MS.EMPO,            MS.ISSUER,            M

huangjinsheng1988的专栏 1320

Oracle_Sql_游标的使用

/*例子:得到一个用户下所有表的数据条数*/ Declare v_tableName VARCHAR2(256);/*存取游标获取的变量*/ v_count NUMBER; Cursor c_tableName is Select Distinct table_name from dba_tables Where owner='GWBN';/*定义...

antaolu3974的博客 96

Oracle 2张表关联更新

Oracle数据库中2张表T_1和表T_2,T_1信息需要根据T_2表信息进行批量变更,2张表根据ID进行关联。 1.创建2张表,没有设置主键create table T_1 (   ID    NUMBER(2),   YEAR  VARCHAR2(20),   MONTH VARCHAR2(10)  ); create table T_2 (   ID

Amos318的专栏 828

oracle批量更新数据库里面所有表的记录为指定值

create or replace procedure updatealltable (startdate varchar2,enddate varchar2) is v_table varchar2(50); v_col varchar2(50); v_sql varchar2(4000); v_sqlupdate varchar2(4000); v_tname varchar2(50...

andyaqu的专栏 363

oracle 根据一个表更新另一个表内容

declarecursor c_col is select * from xtgl_jgmcbm where substr(v_jgbm,0,2)in('41');--v_sjbm in( select distinct substr(v_zjhm_mq,0,6) from etbj_fmdj where length(v_dzpath)=7 and substr(v_zjhm_...

weixin_30618985的博客 281

oracle中怎么删除游标,Oracle使用游标删除所有用户数据表中的所有记录脚本

应用场景:因为数据库中的数据涉及机密信息,希望一次性能删除掉所有数据,只保留数据表结构,供新项目开发程序用测试结果:经查询已删除所有数据存在问题:数据表如果存在外键的话下面脚本可能执行不成功,请自行删除或者过滤掉该表,见下图操作办法:直接将下面的脚本内容复制到PQSQL中执行即可--Oracle使用游标删除所有用户数据表中的所有记录脚本declare mystring NVARCHAR2(1000...

weixin_35914716的博客 654

oracle批量修改多个表的数据

方法一 写PL/SQL,开cursor declare l_varID varchar2(20); l_varSubName varchar2(30); cursor mycur is select T2.Id,T2.Subobject_Name from T2; begin open mycur; loop fetch mycur into l_v...

weixin_33827590的博客 1060
上一篇: 如何使CheckBox不可修改
下一篇: oracle常用语句(长期更)
coderLee0607
博客等级 码龄14年 88粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值