Oracle数据库里可以通过while loop循环来处理重复性编码问题,可以放在存储过程里也可以直接运行,代码样例如下:
declare
ym date; --声明一个循环变量
begin
ym := trunc(sysdate,'YYYY'); --给循环变量赋初始值
while ym <
trunc(add_months(sysdate,12),'YYYY') --定义循环条件
Loop
insert into TMP_CUS_TIME (month1)
select ym from dual;
ym := ADD_MONTHS(ym,1) ;--循环条件+1
commit;
end loop;
end;
这段代码就是实现了将今年每个月份insert进结果表,结果如下:
MONTH1 |
-------------------+
2021-01-01 00:00:00|
2021-02-01 00:00:00|
2021-03-01 00:00:00|
2021-04-01 00:00:00|
2021-05-01 00:00:00|
2021-06-01 00:00:00|
2021-07-01 00:00:00|
2021-08-01 00:00:00|
2021-09-01 00:00:00|
2021-10-01 00:00:00|
2021-11-01 00:00:00|
2021-12-01 00:00:00|
键者总结了自己运行时踩过的坑,供读者参考:
- 运行结果需要存储在一张结果表中,否则无法输出结果
- 需要留心格式中的“;”符号,如果缺失将无法运行,报错时可关注一下代码格式。
版权声明:本文为weixin_44999258原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。