预期日期得到号码以防万一

时间:2017-11-27 15:33:42

标签: sql oracle

我将以下(稍微疯狂的)一段代码作为报告的一部分(产生大量元数据)。

问题是,这一个代码段会针对#Video iframe { 的任何值抛出ORA-00932错误(预期日期获取数量),尽管所有情况都会返回一个数字。

这种情况发生在11g和12c

:i_schedfreq

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

因此,在我的头撞到桌子上一天之后,我查看了一些旧报告并找到了可行的解决方案。

我已将参数转换为日期:

select case 
         when :i_schedfreq = 'M' 
           then abs(months_between(trunc(cast(:DateFrom as date), 'MM'), trunc(cast(:DateTo as date),'MM')))
         when :i_schedfreq = 'W'
           then ceil(ceil(trunc(cast(:DateTo as date)) - trunc(cast(:DateFrom as date)) )/7)
         when :i_schedfreq = 'H'
           then floor((cast(:DateTo as date) - cast(:DateFrom as date))*24)
         else trunc(cast(:DateTo as date))- trunc(cast(:DateFrom as date))
       end as v_diff
from dual