Abap 在SAP GUI或Eclipse ADT中测试OpenSQL语句?

Abap 在SAP GUI或Eclipse ADT中测试OpenSQL语句?,abap,opensql,Abap,Opensql,我正在编写一个OpenSQL查询,包括连接和子选择,我不确定它是否有效。为了找到答案,我想在某个地方运行它,查看结果,然后以迭代的方式更改它 像transactionsSE16或SQVI这样的传统工具没有帮助,因为它们的功能太少(只有一个表,只有联接,没有子选择,等等)。其他有类似问题的线索仍然没有得到回答 当然,我可以编写一个报告或单元测试,将代码粘贴到那里,然后运行它,但这使得迭代周期非常缓慢,因为我需要随时更改输入和输出数据格式。最佳解决方案可能类似于SAP HANA Studio中的SQ

我正在编写一个OpenSQL查询,包括连接和子选择,我不确定它是否有效。为了找到答案,我想在某个地方运行它,查看结果,然后以迭代的方式更改它

像transactions
SE16
SQVI
这样的传统工具没有帮助,因为它们的功能太少(只有一个表,只有联接,没有子选择,等等)。其他有类似问题的线索仍然没有得到回答

当然,我可以编写一个报告或单元测试,将代码粘贴到那里,然后运行它,但这使得迭代周期非常缓慢,因为我需要随时更改输入和输出数据格式。最佳解决方案可能类似于SAP HANA Studio中的SQL控制台,但适用于OpenSQL而不是本机SQL

  • (代表@Florian)在Eclipse中使用。它允许打开SQL选择,除了所有条目和变量的

  • (代表@jozsefszikai)有30天的试用期,因此可能只是短期解决方案(除非您的公司购买)

  • 使用Sébastien Hermann创建的工具ZTOAD

  • 您可以通过创建测试类(ABAP单元)来间接测试开放式SQL语句,在测试类中,您使用类
    CL\u OSQL\u test\u ENVIRONMENT
    (ABAP>=7.52),该类用于模拟数据库,因此您可以提供虚假数据、输入预期结果、在测试模式下执行开放式SQL,并验证实际结果=预期结果。它支持所有开放式SQL功能

  • 以上所有解决方案都允许直接测试opensql。另一种解决方案是使用本机SQL编辑器,并以严格模式(ABAP>=7.40)编写Open SQL语句,以便它们更接近本机SQL语法(特别是逗号用于分隔列名;但别名分隔符必须手动从
    ~
    更改为
    )。有两个本机SQL编辑器:一个是ST04或ST04N中的工具,一个是标准程序。两者都在ALV网格中显示SELECT语句的结果

  • (代表@Florian)在Eclipse中使用。它允许打开SQL选择,除了所有条目和变量的

  • (代表@jozsefszikai)有30天的试用期,因此可能只是短期解决方案(除非您的公司购买)

  • 使用Sébastien Hermann创建的工具ZTOAD

  • 您可以通过创建测试类(ABAP单元)来间接测试开放式SQL语句,在测试类中,您使用类
    CL\u OSQL\u test\u ENVIRONMENT
    (ABAP>=7.52),该类用于模拟数据库,因此您可以提供虚假数据、输入预期结果、在测试模式下执行开放式SQL,并验证实际结果=预期结果。它支持所有开放式SQL功能

  • 以上所有解决方案都允许直接测试opensql。另一种解决方案是使用本机SQL编辑器,并以严格模式(ABAP>=7.40)编写Open SQL语句,以便它们更接近本机SQL语法(特别是逗号用于分隔列名;但别名分隔符必须手动从
    ~
    更改为
    )。有两个本机SQL编辑器:一个是ST04或ST04N中的工具,一个是标准程序。两者都在ALV网格中显示SELECT语句的结果

  • 早上好, 您可以查看查询(SQ01/SQ02),而不是SQVI中的QuickView。在查询中,您有机会通过编码增强连接,并且仍然能够测试“代码”。对于增量更改,这可能是最简单的方法

    问候

    早上好, 您可以查看查询(SQ01/SQ02),而不是SQVI中的QuickView。在查询中,您有机会通过编码增强连接,并且仍然能够测试“代码”。对于增量更改,这可能是最简单的方法


    关于

    同意格特利的观点。这听起来像是一个“有什么工具可以……”有偏见的问题,但实际上这是一个没有偏见的技术问题。你能更准确地理解你所说的“测试”吗?测试为“如何为此编写单元测试”?或者像“不确定它是否编译并且需要在代码中反复尝试”这样的测试?有30天的试用期,所以可能只是短期解决方案(除非贵公司购买)。让我们看看我的重写是否会改变搁置状态?@SandraRossi:是的,当然,根本不需要问:)同意guettli。这听起来像是一个“有什么工具可以……”有偏见的问题,但实际上这是一个没有偏见的技术问题。你能更准确地理解你所说的“测试”吗?测试为“如何为此编写单元测试”?或者像“不确定它是否编译并且需要在代码中反复尝试”这样的测试?有30天的试用期,所以可能只有短期解决方案(除非贵公司购买)。让我们看看我的重写是否会改变搁置状态?@SandraRossi:是的,当然,根本不需要问:)我认为ABAP开发工具有第四种方法:在数据源(如透明表)上按F8键“测试”它。这将打开一个数据预览。生成预览的OpenSQL查询附带了第二个选项卡。如果我没记错的话,它接受完全成熟的OpenSQL语句。也许可以检查并将其添加到您的答案中?@Florian,对,Eclipse中的“SQL控制台”。它是本机SQL,因此RSDU_EXEC_SQL的答案也适用于SQL控制台。我尝试将我的答案转换为“社区维基”,以便您可以参与。解决方案1:RSDU_EXEC_SQL使用本机SQL。我