我正在编写一个 OpenSQL 查询,包括联接和子选择,但我不确定它是否有效。为了找到答案,我想在某个地方运行它,查看结果,然后更改它,这是一种迭代的方式。
SE16诸如事务或事务之类的传统工具SQVI没有帮助,因为它们的功能太少(只有一张表,只有连接但没有子选择等)。其他有类似问题的帖子,比如这个,仍然没有得到答复。
当然,我可以编写报告或单元测试,将代码粘贴到那里,然后运行它,但这使得迭代周期如此缓慢,因为我需要一直更改输入和输出数据格式。最佳解决方案类似于 SAP HANA Studio 中的 SQL 控制台,但适用于 OpenSQL 而不是本机 SQL。
(代表@Florian)在 Eclipse 中使用SQL 控制台。它允许 Open SQL SELECT、例外FOR ALL ENTRIES和变量。
(代表@JozsefSzikszai)软件“OpenSQL Editor for SAP”,由 STA Consulting Kft 开发。有 30 天的试用期,因此可能只是短期解决方案(除非您的公司购买)
ZTOAD使用由 S\xc3\xa9bastien Hermann 创建的工具: http://quelquepart.biz/article7/ztoad-requeteur-open-sql。
您可以通过创建测试类(ABAP Unit)来间接测试Open SQL语句,其中您使用类CL_OSQL_TEST_ENVIRONMENT(ABAP >= 7.52),该类用于模拟数据库,因此您可能会提供错误的数据,输入预期的结果,在测试模式下执行打开的SQL,并验证实际结果=预期结果。它支持所有 Open SQL 功能。
上述所有解决方案都允许直接测试 Open SQL。另一种解决方案是使用原生 SQL 编辑器,并以严格模式(ABAP >= 7.40)编写 Open SQL 语句,使其更接近原生 SQL 语法(尤其是使用逗号分隔列名;但别名分隔符必须手动更改为~) .。有两种原生 SQL 编辑器:一种是 中的工具ST04 or ST04N,一种是标准程序RSDU_EXEC_SQL。两者都在 ALV 网格中显示 SELECT 语句的结果。