我把下面的代码交给了几个QA团队,它们工作得很好。
with dt (dt, interv) as (
select TIMESTAMP '2022-11-01 02:37:11', numtodsinterval(5,'MINUTE') from dual
union all
select dt.dt + interv, interv from dt
where dt.dt + interv <
TIMESTAMP '2022-11-01 05:00:00')
select dt from dt;
问题是值是硬编码的,当一个人修改以放置不同的值时,他们经常会在编辑时出错,这会导致代码失败。
是否可以将此代码修改为管道函数或带有out参数或宏的过程,以防止出现此类问题。
我需要输入2个日期(输入的日期顺序不应该把事情搞砸。也许可以使用least(),greatest()),一个INTERVAL 'N'和一个单位S=second M=MINUTE H=hour或者D=Day。
感谢所有的回答和你的专业知识。
1条答案
按热度按时间brtdzjyr1#
作为宏:
(Note您不能使用WITH子句,因为有一个错误阻止在WITH()部分内替换变量)