【问题标题】:how to declare date variable in sql using toad for oracle如何使用 toad for oracle 在 sql 中声明日期变量
【发布时间】:2017-09-13 16:27:18
【问题描述】:

当我尝试在 TOAD 中的 sql 中运行以下代码时,我收到“PLS-00428:此 SELECT 语句中需要一个 INTO 子句”。我需要能够在代码开头声明日期变量,因为它会在我运行报告时发生变化。

declare
report_date date;
begin
report_date := to_date('09/12/2017','mm/dd/yyyy');
  SELECT   IDMOWNER.INDX_WT.ISSUE_NM,
           IDMOWNER.INDX_WT.SEDOL_ID,
           IDMOWNER.INDX_WT.ISSUE_SYM_ID,           
           IDMOWNER.INDX_WT.ISSUE_ID
    FROM   IDMOWNER.INDX_WT
   WHERE   ( ( (IDMOWNER.INDX_WT.RPT_DT) = TO_DATE (report_date, 'mm/dd/yyyy'))
            AND ( (IDMOWNER.INDX_WT.INDX_SRC_CD) = 'SOD')
            AND ( (IDMOWNER.INDX_WT.INDX_SYM_TX) = 'NQSSFB'))
ORDER BY  IDMOWNER.INDX_WT.RPT_DT,
          IDMOWNER.INDX_WT.ISSUE_SYM_ID,
          IDMOWNER.INDX_WT.MKT_VALUE_AM DESC;      
end;

【问题讨论】:

标签: sql oracle date variables toad


【解决方案1】:

如果您只想运行此查询并获取输出,PL/SQL 块可能不是您的最佳选择。我想你的问题其实是a duplicate of this one

我建议使用替换变量,如下所示:

def report_date = '09/12/2017'

SELECT   IDMOWNER.INDX_WT.ISSUE_NM,
         IDMOWNER.INDX_WT.SEDOL_ID,
         IDMOWNER.INDX_WT.ISSUE_SYM_ID,           
         IDMOWNER.INDX_WT.ISSUE_ID
  FROM   IDMOWNER.INDX_WT
 WHERE   ( ( (IDMOWNER.INDX_WT.RPT_DT) = TO_DATE (&report_date, 'mm/dd/yyyy'))
          AND ( (IDMOWNER.INDX_WT.INDX_SRC_CD) = 'SOD')
          AND ( (IDMOWNER.INDX_WT.INDX_SYM_TX) = 'NQSSFB'))
ORDER BY  IDMOWNER.INDX_WT.RPT_DT,
          IDMOWNER.INDX_WT.ISSUE_SYM_ID,
          IDMOWNER.INDX_WT.MKT_VALUE_AM DESC;    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多