oracle中generate_series()函数是否可以替代?

时间:2019-10-22 13:40:23

标签: sql oracle plsql oracle12c

我正在将PostgreSQL的结构迁移到Oracle 12c,但是我发现在将Generate_series函数转换为oracle时遇到困难。有什么解决办法吗?

我在Postgresql中使用了下面提供的代码。

SELECT (my_day - elapsed_my_day)
     INTO return_v
     FROM (select count(1) elapsed_my_day from
     generate_series(trunc(fromdate), trunc(todate) - 1, '1 day' interval) i;

Oracle中generate_series()函数的正确语法是什么。

1 个答案:

答案 0 :(得分:2)

您似乎正在计算两个日期之间的天数,然后从另一天中减去该偏移量。您无需生成序列并对其进行计数;只是从日期中减去。您甚至不需要使用SQL查询,它可以完全用PL / SQL编写:

BEGIN
  return_v := m_day - ( TRUNC( to_date ) - 1 - TRUNC( from_date ) );
END;