我的目标是开发一个存储过程,该存储过程循环循环从开始日期到结束日期的日期,并在WHERE子句中使用这些日期。为了实现这个目标,我希望从小处入手,并首先获取日期列表。然后,我将这些日期转换为变量。我已经看过很多示例,但是似乎对如何在Oracle SQL Developer(11.2; 4.1.3)中实现块代码感到困惑
我试图更好地理解其工作原理:
SPOOL "C:\temp\selected_dates.csv";
SELECT
ROWNUM - 1 + TO_DATE('2018-08-01', 'yyyy-mm-dd') AS selected_dates
--INTO table_var
FROM
SYS.ALL_OBJECTS
WHERE
ROWNUM < TO_DATE('2018-08-07', 'yyyy-mm-dd')
- TO_DATE('2018-08-01', 'yyyy-mm-dd')
+ 2
;
/
SPOOL OFF;
但是,我收到
PLS-00428:此SELECT语句中应包含一个INTO子句
当我添加BEGIN / END时:
SPOOL "C:\temp\selected_dates.csv";
BEGIN
SELECT
ROWNUM - 1 + TO_DATE('2018-08-01', 'yyyy-mm-dd') AS selected_dates
--INTO table_var
FROM
SYS.ALL_OBJECTS
WHERE
ROWNUM < TO_DATE('2018-08-07', 'yyyy-mm-dd')
- TO_DATE('2018-08-01', 'yyyy-mm-dd')
+ 2
;
END;
/
SPOOL OFF;