使用wso2,DSS版本3.01,我試圖讓輸入參數可以是一個可選參數。用戶可以說,給我所有關於這個特定代碼的信息,或者如果用戶沒有指定任何代碼,我想給所有的行數據。你能幫我嗎?使用輸入參數作爲可選輸入
回答
那麼你可以通過給輸入參數賦予默認值來使輸入參數可選。例如
<query id="MyQ" useConfig="myDS">
<sql>select cust_id,name from customer where cust_id = ?</sql>
<result element="Entries" rowName="Entry">
<element column="cust_id" name="cust_id" xsdType="string"/>
<element column="name" name="name" xsdType="string"/>
</result>
<param defaultValue="1" name="cust_id" sqlType="INTEGER"/>
</query>
在這裏,如果您沒有提及輸入參數,它會將輸入參數作爲一個參數。否則,你需要創建兩個查詢和處理它們編程
看來我需要創建2個查詢?我怎麼做?我有以下參數和資源。 「 <操作名稱= 「GetCd」> <調用查詢HREF = 「DefaultCampus」> <與-PARAM NAME = 「CD」 查詢 - PARAM = 「CD」/> <資源方法= 「GET」 路徑= 「採樣/ {鎘}」> <調用查詢HREF = 「樣品」> <與-PARAM NAME = 「CD」查詢參數=「Cd」/> ' – user2872396
您必須創建兩個查詢一個輸入參數Cd和另一個查詢沒有輸入參數採取所有,然後映射每個查詢diffe租操作 – poohdedoo
好的。我可以創建2個查詢。你如何將這兩個查詢映射到不同的操作?我是DSS的新手。我會很感激你的榜樣。謝謝。 – user2872396
確定洙例如
<query id="employeesByNumberSQL" useConfig="default">
<sql>select * from Employees where employeeNumber = ?</sql>
<result element="employees" rowName="employee">
<element column="lastName" name="last-name" xsdType="string"/>
<element column="firstName" name="first-name" xsdType="string"/>
<element column="email" name="email" xsdType="string"/>
<element column="salary" name="salary" xsdType="double"/>
</result>
<param name="employeeNumber" ordinal="1" paramType="SCALAR" sqlType="INTEGER" type="IN"/>
SELECT * FROM員工
你有兩個查詢employeesByNumberSQL,employeesByNumberSQL1這兩個映射togetemployeesByNumber和getemployeesByNumber2
您說有2個操作(每個查詢一個)和2個資源GET方法,每個都有一個。那是你在說什麼?因爲我想用一個輸入參數CD來獲得一個資源GET。如果用戶提供了,那麼需要一張CD,如果沒有,則使用資源列出全部
而不是創建每個可選參數的查詢,你也可以做到以下幾點:
<query id="selectEmployees" useConfig="default">
<sql>select * from Employees where (:employeeNumber is null or employeeNumber = :employeeNumber)</sql>
<result element="employees" rowName="employee">
<element column="lastName" name="last-name" xsdType="string"/>
<element column="firstName" name="first-name" xsdType="string"/>
<element column="email" name="email" xsdType="string"/>
<element column="salary" name="salary" xsdType="double"/>
</result>
<param defaultValue="#{NULL}" name="employeeNumber" ordinal="1" paramType="SCALAR" sqlType="INTEGER" type="IN"/>
</query>
<operation name="getEmployees">
<call-query href="selectEmployees">
<with-param name="employeeNumber" query-param="employeeNumber"/>
</call-query>
</operation>
現在,您可以用'employeeNumber'調用'getEmployees'並獲得特定的員工,
或者您可以在沒有'employeeNumber'的情況下調用'getEmployees'並獲得所有員工。
(不帶'employeeNumber'的調用是通過省略'employeeNumber'標籤或使用'xsi:nil =「true」'。)
顯然,您不能通過這種方式查詢值'null'。
太棒了... ...就像一個魅力!!!! –
- 1. 使用函數參數作爲輸入和輸出
- 2. 輸入,輸出,輸入/輸出參數
- 3. C++使用輸入參數作爲輸出
- 4. 使用可選的輸入參數,ADODB是否在輸出參數上失敗?
- 5. 我可以使用輸入作爲輸入嗎?
- 6. 使用輸入參數
- 7. Java:當變量可能位於多個輸入/參數之一時,使用輸入/參數作爲變量
- 8. 結構數組作爲輸入參數
- 9. 布爾函數作爲輸入參數
- 10. 拆分數組作爲輸入參數
- 11. PSCustomObjects數組作爲輸入參數
- 12. 將多選輸入參數作爲數據集參數傳入IN條件 - SSRS
- 13. 可選輸出光標作爲參數
- 14. 使用DIV作爲輸入
- 15. 使用JDialog作爲輸入
- 16. 使用向量作爲matlab中多輸入函數的輸入
- 17. 停止*作爲用戶輸入輸入
- 18. 一個函數中Matlab可選的輸入和輸出參數
- 19. 在scrapy,「start_urls」時,作爲輸入參數
- 20. 命令行輸入作爲參數
- 21. 與輸入值作爲參數
- 22. 輸入作爲功能的參數
- 23. AzureML:以參數作爲輸入
- 24. 使用reg輸出作爲輸入Verilog
- 25. 使用c#輸出作爲MATLAB輸入
- 26. 使用輸入作爲字典調用的函數的參數
- 27. 使用...函數參數作爲另一個函數的輸入
- 28. 作爲輸入參數的元組的可變引用
- 29. 使用可選輸入參數設置功能(swift)
- 30. 輸入輸出參數與不帶副作用的參數
是否您希望用戶爲某些查詢指定某些標準? – cmd
是的。我用輸入作爲參數。我不確定defaultvalue可以像下面的user @poohdedoo一樣使用,因爲我想顯示所有的代碼而不僅僅是一個。一個代碼可以由用戶指定。通用的sql基本上就是我通過poohdedoo得到的。 – user2872396