1

我想知道为什么 Oracle Forms 中“光标”内的“分析”行会产生错误。它是这样写的:

CURSOR READ_C1_REC IS  
   SELECT  DISTINCT MACH, TCODE,   
     COUNT(ALL TRANS_NO) OVER (PARTITION BY MACH, 
     TCODE ORDER BY MACH, TCODE) TOTALPERMACHPERTCODE  
   FROM  
   (
     SELECT ....
    )  
    ORDER BY MACH, TCODE;  
C1_REC READ_C1_REC%ROWTYPE;

...这是编译期间的错误消息:

Error 103 at line 17, column 29
  Encountered the symbol "(" when expecting one of the following:

    , from

..并且错误指向分析中“OVER”一词之后的部分。

我的代码可能有什么问题?是否允许在“光标”内进行分析?

:)

4

2 回答 2

1

Oracle Forms 拥有(或至少曾经拥有)自己的 PL/SQL 引擎,这在其支持的特性方面通常落后于数据库产品。您的 Forms 版本可能在引入分析函数之前就有一个 PL/SQL 引擎。

你说过你不能创建视图;你可以创建包吗?如果是这样,也许您可​​以将代码移动到一个包中并从 Forms 中调用它。

于 2009-07-24T12:54:02.347 回答
0

您可以在 Forms 中使用的 SQL 十多年来一直没有进步。动态 SQL 是最好的答案。我认为你应该看看EXEC_SQL

于 2009-07-24T12:42:41.483 回答