【问题标题】:WSO2 DSS 3.2.0/3.2.1 can't recognize named parameters within LIKE statementsWSO2 DSS 3.2.0/3.2.1 无法识别 LIKE 语句中的命名参数
【发布时间】:2014-06-09 10:53:08
【问题描述】:

我使用 wso2 dss 创建了一个简单的数据服务,如下所示。

Query : SELECT id, key, value, description FROM dbo.configs where key like '%:filter%'

最终的 XML:

<query id="select_all_configs_like_query" useConfig="default">
<sql>SELECT id, key, value, description FROM dbo.configs where key like '%:filter%' </sql>
<result element="configsCollection" rowName="configs">
    <element column="id" name="id" xsdType="xs:integer"/>
    <element column="key" name="key" xsdType="xs:string"/>
    <element column="value" name="value" xsdType="xs:string"/>
    <element column="description" name="description" xsdType="xs:string"/>
</result>
<param name="filter" sqlType="QUERY_STRING"/>
</query>
<operation name="select_all_configs_like_operation">
    <call-query href="select_all_configs_like_query">
        <with-param name="filter" query-param="filter"/>
    </call-query>
</operation>

当我调用服务时,它会以空响应进行响应。控制台上没有错误。检查数据库历史记录后,查询记录如下

SELECT id, key, value, description FROM dbo.configs where key like '%:filter%'

看起来参数未分配给实际查询。有什么帮助吗?

【问题讨论】:

    标签: wso2 wso2dss named-parameters


    【解决方案1】:

    您可以在 SQL 语句中使用 Concat 函数,例如 CONCAT('%',:filter,'%')

    【讨论】:

    • 感谢您的回复。 SELECT id, key, value, description FROM dbo.configs where key like CONCAT('%',:filter,'%') 不起作用。
    • 你试过 CONCAT(:filter,'%') 还是 CONCAT('%',:filter)?我正在使用 DSS 版本 3.2.1 并且 CONCAT(:filter,'%') 对我有用,您使用的是哪个版本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多