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

分析函数上的Oracle Collect

  •  1
  • Chris  · 技术社区  · 15 年前

    是否可以使用10g collect命令作为分析函数,使用over-partition或其他方法?

    例如

    SELECT COLLECT(x) OVER (PARTITION BY y)
    FROM table
    

    每次我尝试这个,都会有一个ORA3113异常,它说“通信通道上的文件结束”。

    附言:我知道我需要投射结果使其有用,但为了简单起见,我暂时不考虑它。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Dave Costa    15 年前

    collect不是分析函数,但可以用作组函数。

    SELECT y, COLLECT(x) FROM table GROUP BY y
    

    (有趣的是,虽然collect并没有被列为一个分析函数,但是如果我尝试像在您的示例中那样使用它,它似乎首先起作用,然后在输出一些结果后停止,并按照您所说的给出ora-03113。)