Pmd 分析.PKB文件时出错

Pmd 分析.PKB文件时出错,pmd,Pmd,因此,我试图分析gitBash中的.pkb文件,遇到以下错误: 以下是pkb的737行: FOR sum_res IN (SELECT SUM(loss_reserve) loss_reserve, SUM(expense_reserve) exp_reserve FROM gicl_clm_reserve a, gicl_item_peril b

因此,我试图分析gitBash中的.pkb文件,遇到以下错误:

以下是pkb的737行:

        FOR sum_res IN (SELECT SUM(loss_reserve) loss_reserve,
                               SUM(expense_reserve) exp_reserve
                          FROM gicl_clm_reserve a, gicl_item_peril b
                         WHERE a.claim_id = b.claim_id
                           AND a.item_no  = b.item_no
                           AND a.peril_cd = b.peril_cd
                           AND a.claim_id = p_claim_id
                           AND (NVL(b.close_flag, 'AP') IN ('AP','CC','CP') OR 
                                NVL(b.close_flag2, 'AP') IN ('AP','CC','CP')))
        LOOP
           v_loss_res_amt  := sum_res.loss_reserve;
           v_exp_res_amt   := sum_res.exp_reserve;
        END LOOP;

如果我错了,请纠正我,但据我所知,它希望我将FOR循环放在一行中?这个问题有解决办法吗

我真的怀疑编辑空白是否有什么好处

一般来说,它不想从你那里得到任何东西。由于无法分析此SQL片段,它崩溃得非常厉害。在SQL中,空格的使用相当松散,所以解析器在处理多行查询时应该没有问题

当它读取“SUM”关键字时失败了,但至于原因,不知道。通过stacktrace猜测,
IsTypeOf
/
IsNullCondition
/
UnaryExpresion
,它可能希望在某些地方实现更简单的功能

根据错误说明
SUM SUM
,可能它期望内部SELECT返回单个列,因此可能它没有注意到第二个
SUM
关键字并产生错误
oops,我在单值查询上下文中找到了SELECT SUM,SUM(..)。不幸的是,异常消息缺少这方面的详细信息

除了在这里等待在该主题方面比我更有经验的人(我没有经验,我根据我在静态代码分析方面的经验和您提供的异常文本作出响应),我会将此作为错误通知单发送给PLSQLParser类/模块的开发人员-对我来说,它看起来像是PL/SQL规范中的一个bug或未实现的部分

也可能是解析器只支持某些较旧版本的PL/SQL语言,而您的文件是使用较新版本编写的。在这种情况下,这不是一个bug,而是您的运气不好,您需要更改工具集或等待它得到支持。另一种选择是,分析工具支持该语言的较新版本,但由于未知原因而设置为使用较旧版本。如果是这样,那么可能只是需要进行一些额外的配置


免责声明:让我再说一遍,我要说的是,所有这些都或多或少是受过教育的猜测。

我真的怀疑编辑空白是否有什么好处

一般来说,它不想从你那里得到任何东西。由于无法分析此SQL片段,它崩溃得非常厉害。在SQL中,空格的使用相当松散,所以解析器在处理多行查询时应该没有问题

当它读取“SUM”关键字时失败了,但至于原因,不知道。通过stacktrace猜测,
IsTypeOf
/
IsNullCondition
/
UnaryExpresion
,它可能希望在某些地方实现更简单的功能

根据错误说明
SUM SUM
,可能它期望内部SELECT返回单个列,因此可能它没有注意到第二个
SUM
关键字并产生错误
oops,我在单值查询上下文中找到了SELECT SUM,SUM(..)。不幸的是,异常消息缺少这方面的详细信息

除了在这里等待在该主题方面比我更有经验的人(我没有经验,我根据我在静态代码分析方面的经验和您提供的异常文本作出响应),我会将此作为错误通知单发送给PLSQLParser类/模块的开发人员-对我来说,它看起来像是PL/SQL规范中的一个bug或未实现的部分

也可能是解析器只支持某些较旧版本的PL/SQL语言,而您的文件是使用较新版本编写的。在这种情况下,这不是一个bug,而是您的运气不好,您需要更改工具集或等待它得到支持。另一种选择是,分析工具支持该语言的较新版本,但由于未知原因而设置为使用较旧版本。如果是这样,那么可能只是需要进行一些额外的配置


免责声明:我再说一遍,我只是想说清楚,所有这些都或多或少是受过教育的猜测。

嘿,伙计,谢谢你的建议。我同意,异常消息没有给我任何关于如何修复错误的可靠信息。我想我必须等待PMD团队中某个人的回答。嘿,伙计,谢谢你的建议。我同意,异常消息没有给我任何关于如何修复错误的可靠信息。我想我必须等待PMD团队中某个人的回答。你好!我是PMD维护人员。你好像遇到了一只虫子。我刚刚添加了跟踪它。如果您能在这里发表评论,我将不胜感激,这样我们就可以在解决问题的过程中与您一起跟进。谢谢嗨,约翰,已经做了,谢谢!你好!我是PMD维护人员。你好像遇到了一只虫子。我刚刚添加了跟踪它。如果您能在这里发表评论,我将不胜感激,这样我们就可以在解决问题的过程中与您一起跟进。谢谢嗨,约翰,已经做了,谢谢!