【发布时间】:2020-01-29 14:37:42
【问题描述】:
我在一个本地 SAP HANA 数据库上获得了一个查询视图,我想在该数据库上执行选择语句。
SELECT 语句由第三方 BI 工具发送,该工具使用 SAP HANA JDBC 驱动程序 (ngdbc.jar) 来执行对 HANA 数据库的访问。
查询需要两个输入参数:PARAMETER_A 和 PARAMETER_B
在本机 HANA 数据库上,语法如下所示(SAP HANA Studio):
select *
from "_SYS_BIC"."QUERY_VIEW" ('PLACEHOLDER' = ('$$PARAMETER_A$$', 'value_1'), 'PLACEHOLDER' = ('$$PARAMETER_B$$', 'value_2'))
当我尝试通过 JDBC 执行此查询时,出现以下语法错误:
不允许使用“=”号。
谁能告诉我使用 JDBC 的正确语法吗?
提前致谢
【问题讨论】:
-
能否请您发布您的 JAVA 代码,以便我们了解您如何构建发送给 HANA 的 SQL 字符串?
-
你好 Lars,没有 JAVA 代码。我们使用第三方 BI 工具。此工具允许使用 JDBC 驱动程序 (ngdbc.jar) 从 SAP HANA 数据源导入。因此,我们可以将我们的 select-SQL 语句发布到 BI 工具的导入向导中,并选择应该用于访问数据源的驱动程序。我尝试了我的第一篇文章中显示的选择语句,它在“SAP HANA Studio”中运行良好。但是当我在 BI-Tool(它使用 JDBC 访问 HANA 数据库)中使用此语句时,它会显示一个语法错误,指出不允许使用“=”...
-
因此,我怀疑 JDBC 驱动程序需要不同的参数规范?!
-
我无法证实您的怀疑。 SAP HANA Studio 实际上使用的 JDBC 驱动程序与您可以从客户端软件包下载和安装的驱动程序相同。在我看来,a) 您的 BI 工具尝试评估 SQL 语法本身并失败,因为
PLACEHOLDER...语法非常特定于 HANA,或者 b) BI 工具在发送之前没有正确引用 SQL 字符串到 HANA。 -
顺便说一句:您在这里使用哪个第三方 BI 工具?