【问题标题】:Sap Hana xsodata InputParameter value with single quote带单引号的 Sap Hana xsodata InputParameter 值
【发布时间】:2016-03-31 15:37:28
【问题描述】:

有没有办法(除了替换)将带有特殊字符的值传递给 xsodata InputParameters?

我尝试提出如下请求: ../ODATA_SEARCH.xsodata/InputParams(IP_TERM='O'Neal')/Results?$format=json

但出现错误: { "error": { "code": "", "message": { "lang": "en-US", "value": "位置 66 的资源路径中的语法错误。"}}}

当我使用双引号时: ODATA_SEARCH.xsodata/InputParams(IP_TERM='O''NEAL')/Results?$format=json

出现错误:

{ "error": { "code": "", "message": { "lang": "en-US", "value": "服务异常:[2048] 列存储错误"}}}

但是当我通过 sql 脚本或“数据预览”直接调用视图时,加倍有效。

【问题讨论】:

    标签: sap hana


    【解决方案1】:

    URL 中的特殊字符可以而且有时必须像 %20this 一样进行 % 编码。但是对于 ODATA URI 中的单引号 (%27),这将不起作用:

    ...ms(IP_TERM='O%27Neal')/Results?$for...
    

    仍然会产生语法错误。

    相反,ODATA URI 中的单引号通过将它们加倍来进行转义。像这样使用它:

    ...ms(IP_TERM='O''Neal')/Results?$for...
    

    【讨论】:

    • 我尝试加倍。它不起作用。 (列存储错误)。但是对于计算。查看执行报价转义工作正常。 Hana 版本 1.00.85.03.400544
    • 你能用逐字列存储错误更新问题吗?
    • ODATA_SEARCH.xsodata/InputParams(IP_TERM='O''NEAL')/Results?$format=json { "error": { "code": "", "message": { "lang ": "en-US", "value": "Service exception: [2048] column store error"}}} 但是当我通过 sql 脚本或“数据预览”直接调用视图时它可以工作。
    【解决方案2】:

    我们决定将参数作为 base64 字符串传递,然后在视图中对其进行解码: BASE64_DECODE(:IP_TERM)

    【讨论】:

    • 我建议您为此向 SAP 提交一张票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多