oracle-存储过程-日期加1循环
下面是循环日期的存储过程
CREATE OR REPLACE
PROCEDURE QJHF (qjIdStr IN VARCHAR2) ASksrq DATE;--请假开始日期
jsrq DATE;--请假结束日期
ryId VARCHAR2(36);
prevDate VARCHAR2(10);--请假日期字符串形式
isHoliday number; -- 是否节假日
holidayType number; -- 节假日类型
tempYcsc number; -- 临时异常时长,在处理哺乳假。产假时使用
BEGIN
-- 创建存储过程用于把请假的这几天的数据重新生成(未标记过得重新生成)
--根据请假id,查出请假开始时间和结束时间然后循环处理
SELECT trunc(KSRQ,"dd"), CASE WHEN JSRQ>SYSDATE THEN trunc(SYSDATE,"dd") ELSE trunc(JSRQ,"dd") END AS JSRQ,SQR into ksrq,jsrq, ryId from KQGL_QJGL WHERE QJID = qjIdStr;
WHILE ksrq<=jsrq LOOP
BEGIN
--根据日期执行相应的恢复数据的存储过程;
--日期转化为字符串;
SELECT TO_CHAR(ksrq,"YYYY-MM-DD") INTO prevDate FROM dual;
--以下是重新生成某个人的考勤数据
--日期加一再循环;
ksrq := ksrq +1;
END;
END LOOP;
END;
注意:
1.select into 用法
select a,b,c into m,l,k from tablename where condition;
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
