Oracle 中循环遍历某张表,并对符合条件的进行Update操作

BEGIN

FOR L_RECORD IN (select RECORD_ID,CURR_PERIOD,PERIOD_START_DATE, (sysdate- PERIOD_START_DATE) diffTime,(P.PERIOD_END_DAY-P.PERIOD_BEGIN_DAY) periodDiffDay from CPS_PATIENT_PATH_RECORD t1
inner join cps_treat_period p on p.Period_Id=t1.Curr_Period
where t1.path_state=1)
LOOP
    IF (L_RECORD.DIFFTIME >=L_RECORD.periodDiffDay)
      THEN
        UPDATE CPS_PATIENT_PATH_RECORD
           SET PERIOD_START_DATE=to_date(to_char(sysdate,‘YYYY/MM/DD‘),‘YYYY/MM/DD‘),CURR_PERIOD =L_RECORD.CURR_PERIOD+1
         WHERE RECORD_ID=L_RECORD.RECORD_ID;
    END IF;
 END LOOP;
END;

格式:

FOR  record IN (SELECT)

LOOP

  UPDATE T WHERE

END LOOP

时间: 2024-12-14 22:12:47

Oracle 中循环遍历某张表,并对符合条件的进行Update操作的相关文章

在oracle中怎么把一张表的数据插入到另一张表中

把table2表的数据插入到table1中 insert   into   table1   select   *   from   table2

Oracle用rowid删除同一张表的重复记录

经常有这样一个业务场景,我们在同一张表中有重复的记录,我们要删除重复的记录,这篇文章就是用来解决这个问题的,用的方法是我目前遇到的效率最高的方法(如果有更好的方法欢迎网友提供).这个方法会用到了rowid,下面简单介绍一下rowid的定义 1.ROWID定义 ROWID:数据库中行的全局唯一地址 对于数据中的每一行,rowid伪列返回行的地址.rowid值主要包含以下信息: 对象的数据对象编号 该行所在的数据文件中的数据块 该行中数据块的位置(第一行是0) 数据行所在的数据文件(第一个文件是1)

Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)

应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create or replace type splitTable is table of varchar2(100); 2.创建函数fn_splitString(功能是将字符串分割成多条记录)--测试语句select * from table(fn_splitString('ernanyinv','nan'))

oracle中查看当前用户的表结构、主键、索引

1.查询表的所有列及其属性 select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表 2.查找表的所有索引(包括索引名,类型,构成列) select t.*,i.index_type from user_ind_columns t,user

Sql从一张表中更改另一张表数据

语法: update table1 set table1.列=table2.列 from table2 where table2.列=table1.列update NFYSP.dbo.PATIENT     setPATIENT_ADDUSERID=OLD.PATIENT_ADDUSERID,PATIENT_UPDATEUSERID=OLD.PATIENT_UPDATEUSERID,PATIENT_UPDATEUSERNAME=OLD.PATIENT_UPDATEUSERNAME,PATIENT

sql 对一张表进行按照不同条件进行多次统计

最近一直在做数据统计,在此过程中,遇到过好多种情况都是对一张表按照不同的条件进行多次统计,以前的做法是统计几次按照不同的条件left join 几次,虽然也能得到想要的结果,但是效率太低,反映在页面就是访问速度很慢. 今天在又一次遇到这种情况,要对一张表按照不同的条件进行七八次统计,不想在按照以前的思路来了,在网上一搜,果真可以通过case when语句进行统计,具体思路如下: 第一步:按照数据的共性,查询出来所有数据,包括要统计次数的那些字段 第二步:用把case when 包含在count函

工作中需要将多张CAD图纸共同转换成DWF格式如何操作?

工作中需要将多张CAD图纸共同转换成DWF格式如何操作?有要求需要将CAD图纸文件进行格式转换成DWF形式的应该怎么样进行操作,使用CAD转换器软件进行此项操作的步骤是什么,具体应该怎么样进行操作,接下来小编就要来教大家的就是工作中需要将多张CAD图纸共同转换成DWF格式如何操作的全部步骤,希望能够帮助到你们,望采纳! 步骤一:首先需要进行打开电脑上面的这款迅捷CAD转换器,然后点击进入页面准备进行操作!如果电脑上没有这款软件的话,就可以去到迅捷CAD官网上进行下载! 步骤二:进入软件后选择左边

[ jquery 位置选择器 :first-child :last-child ] 强化说明:选取属于其父元素和所有兄弟元素中子元素集合中处于第一个(最后一个)位置上符合条件的元素

强化说明:选取属于其父元素和所有兄弟元素中子元素集合中处于第一个(最后一个)位置上符合条件的元素 注意和:first :last 的区别 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http

TP中循环遍历

循环遍历(重点) 在ThinkPHP中系统提供了2个标签来实现数组在模版中的遍历: volist标签.foreach标签. Volist语法格式: Foreach语法格式: 从上述的语法格式发现volist标签和foreach标签的语法结构上大体是一样的,那为什么系统还封装2个模版标签呢? 区别在于:volist除了上述的name和id属性对之外,还支持更多的属性对,如mod.key.length等等,而foreach标签除了上述的name和item之外只支持key属性对.可以理解成foreac