2014-06-09 56 views
0

我已經使用wso2 dss創建了一個簡單的數據服務,如下所示。WSO2 DSS 3.2.0/3.2.1無法識別LIKE語句中的命名參數

查詢:SELECT ID,鍵,值,說明從dbo.configs,其中關鍵LIKE '%:過濾%'

最終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,鍵,值,說明從dbo.configs,其中關鍵LIKE「%:過濾%」

貌似參數沒有分配到實際查詢。任何幫助?

回答

0

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

+0

感謝您的回覆。 SELECT id,key,value,description FROM dbo.configs,其中像CONCAT('%',:filter,'%')這樣的鍵不起作用。 –

+0

你試過CONCAT(:過濾器,'%')還是CONCAT('%',:過濾器)?我正在使用DSS版本3.2.1和CONCAT(:filter,'%')爲我工作,你在什麼版本? – user3758298