ORACLE存储过程循环等操作

FOR循环用法

create or replace procedure P_AUTO_INSERT_USER_ROLE(EXEC_DATE         IN DATE) is
/**
 * 根据查到的数据循环遍历
 */
begin
  DECLARE
    V_START_DATE         VARCHAR2(30);
    V_END_DATE           VARCHAR2(30);
  begin
    -- 根据执行时间获取5天前的数据做处理
    select to_char(EXEC_DATE-6,'yyyy-mm-dd') into V_START_DATE from dual;
	select to_char(EXEC_DATE-5,'yyyy-mm-dd') into V_END_DATE from dual;
    
	-- 对查询到的数据进行遍历  ROW_USER为自定义变量 作为查询返回的每一行数据 ROW_USER.字段名 可取值
    for ROW_USER in (
      select T.* from TAB_USER T WHERE 1=1 AND IS_DELETED = 0
				 AND T.CREATE_DATE between to_date(V_START_DATE,'yyyy-mm-dd') AND to_date(V_END_DATE,'yyyy-mm-dd')
      ) LOOP
      
      insert into TAB_USER_ROLE
             (
              USER_ID,
              ROLE_ID,
              CREATOR,
              CREATE_DATE,
              IS_DELETED
             )
			 VALUES
             (
              ROW_USER.USER_ID,
              '100001',
              '超级管理员',
              sysdate,
              0
             ); 
    end LOOP;
    
  end;
end P_AUTO_INSERT_USER_ROLE;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值