Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle分析内部游标_Oracle_Plsql_Cursor_Analytics - Fatal编程技术网

Oracle分析内部游标

Oracle分析内部游标,oracle,plsql,cursor,analytics,Oracle,Plsql,Cursor,Analytics,我想知道为什么我在Oracle表单中的“游标”中的“分析”行会生成错误。它是这样写的: 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 .... )

我想知道为什么我在Oracle表单中的“游标”中的“分析”行会生成错误。它是这样写的:

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
…错误指向分析中“结束”一词后的部分

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


:)

可以在表单中使用的SQL十多年来一直没有进步。
动态SQL是最好的答案。我想你应该看看你可以在表单中使用的SQL在过去的十年里没有进步。 动态SQL是最好的答案。我认为您应该看看Oracle Forms有(或至少有一段时间有)自己的PL/SQL引擎,就其支持的功能而言,这通常落后于数据库产品。可能是您的表单版本有一个PL/SQL引擎,它早于分析函数的引入

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

Oracle Forms有(或至少有一段时间有)自己的PL/SQL引擎,而这在其支持的功能方面通常落后于数据库产品。可能是您的表单版本有一个PL/SQL引擎,它早于分析函数的引入


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

是的,除非您使用Oracle 8,否则它是允许的。你使用什么oracle版本?哦,我知道了,你使用的是oracle表单。而不是服务器端PL/SQL。也许你可以定义一个视图并从该视图中选择?嗨,西奥,谢谢你的建议。关于创建“视图”,我没有创建视图的特权。在这种情况下,还有其他可能的解决方案吗?:)你确定这是正确的语法吗?select语句是否在SQL PLUS中运行?为什么您没有创建视图的权限?和你的DBA谈谈。您应该拥有自己的具有高级权限的开发数据库。视图不会杀死幼儿。是的,除非您使用Oracle 8,否则视图是允许的。你使用什么oracle版本?哦,我知道了,你使用的是oracle表单。而不是服务器端PL/SQL。也许你可以定义一个视图并从该视图中选择?嗨,西奥,谢谢你的建议。关于创建“视图”,我没有创建视图的特权。在这种情况下,还有其他可能的解决方案吗?:)你确定这是正确的语法吗?select语句是否在SQL PLUS中运行?为什么您没有创建视图的权限?和你的DBA谈谈。您应该拥有自己的具有高级权限的开发数据库。观点不会杀死蹒跚学步的孩子。