PLS-00428:在此SELECT语句和BEGIN / END中应使用INTO子句

时间:2018-08-07 14:43:11

标签: oracle11g oracle-sqldeveloper

我的目标是开发一个存储过程,该存储过程循环循环从开始日期到结束日期的日期,并在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;

0 个答案:

没有答案