gpt4 book ai didi

java - 使用来自 java 的 HANA PLACEHOLDER 查询和命名参数替换

转载 作者:行者123 更新时间:2023-12-02 09:04:25 25 4
gpt4 key购买 nike

有人可以向我解释一下在 sap hana 查询中使用 PLACEHOLDERWHERE 之间的区别吗?我是 SAP HANA 的新手,在我的 springboot 应用程序中,我必须使用一个 PLACEHOLDER 查询从计算 View 中获取一些数据。问题是,当将 spring data jpa 与 SAP HANA 一起使用时,由于某种原因,PLACEHOLDER 查询无法在查询创建期间动态替换值。例如,采取查询:

select * from SOME_TABLE ('PLACEHOLDER' = ('$$IP_SOME_COLUMN1$$', 'value1') ,('$$IP_SOME_COLUMN2$$', 'value2'));

每当我们尝试动态地将值传递给该查询时,由于某种原因,查询创建都会失败。因此,我们希望改用大家熟悉的 WHERE 子句,但需要澄清它们之间的差异以及它如何影响性能。

最佳答案

与 HANA 中的 WHERE 子句占位符不同,它是非标准/专有语法扩展。
这个想法是,查询可以向 View 提供附加信息 - 通常这将是过滤条件,否则不可能在处理中“下推”。

这些概念在用例中重叠,但在实现和其他方面的含义完全不同。

关于“动态传递值”问题:旧的占位符语法不支持 SQL 查询参数/主变量替换(查询文本中的 ?)。
为此,您需要使用参数语法的新变体。

另请参阅How to escape sql injection from HANA placeholder .

关于java - 使用来自 java 的 HANA PLACEHOLDER 查询和命名参数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59931574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com