代码之家  ›  专栏  ›  技术社区  ›  ALOToverflow

返回多行的光标

  •  0
  • ALOToverflow  · 技术社区  · 15 年前

    过去几天我一直在做这个,我找不到出路。我有一个C Web应用程序需要在屏幕上打印报告。这个应用程序调用数据库(Oracle)上的存储过程,并返回一个光标。这是程序

    PROCEDURE report_total(beginDate IN DATE, endDate IN DATE, c OUT REF CURSOR)
    AS
    BEGIN
       OPEN
          c
       FOR
          SELECT
              month
              ,sum(field1)
              -- + a lot of other fields
          FROM
              view1 v
          WHERE
              beginDate <= v.date
              AND v.Date < endDate
          GROUP BY
              month
    END;
    

    这很好,它给了我每个月的field1(和其他)的总和。假设您至少输入一个完整的年份范围,最多可以得到12行。豪弗。我想创建一个类似的存储过程,它将给出这些月的详细信息。

    假设begindate='2003-01-01'和enddate='2005-01-05'(yyyy-mm-dd),我需要25行。每月一次,每年一次。我想把光标拿出来得到这些结果。如果你有一个不涉及光标的最简单的想法,请建议我。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Quassnoi    15 年前
    SELECT  TRUNC(v.date, 'MONTH'), SUM(field1)
    FROM    view1 v
    WHERE   v.date BETWEEN beginDate and endDate
    GROUP BY
            TRUNC(v.date, 'MONTH')