我有一些執行oracle調用的代碼。我想知道如果我正在嘗試這樣做的方式可以做得更好,或者如果oracle代碼可以更高效。優化JSTL和ORACLE查詢的創建和運行時間
我的主要關注點是對UPPER('%Variable%')
進行比較。鞋面內的外卡似乎有潛在的危險緩慢。
結果可能會返回超過5萬個結果(預計未來會大量增加)。
1 = 1的目的很簡單,就是讓代碼的其餘部分變得更簡單,並且認爲它不會太傷害sql。
<c:set var="sqltext">
SELECT var1, var2, var3 from var_table
WHERE 1=1
<c:if test="${!empty param.var1}"> AND UPPER(var1) LIKE UPPER('%${param.var1}%')</c:if>
<c:if test="${!empty param.var2}"> AND UPPER(var2) LIKE UPPER('%${param.var2}%')</c:if>
<c:if test="${!empty param.var3}"> AND var3 = '${param.var3}'</c:if>
</c:set>
<sql:query var="data" dataSource="mydatasource" sql="${sqltext}"/>
任何幫助將不勝感激。謝謝