2016-09-20 84 views
0

I'm使用的Apex項目文本字段具有自動完成,裝載用一個簡單的SQL查詢結果列表。我注意到,如果我對列表的大小施加了限制,而在輸入搜索字符串時,即使查詢仍帶有有效結果,列表也會停止顯示。這發生在延遲加載選項已關閉。文本字段自動完成

SQL代碼:

select PESS_NM from (
SELECT P.PESS_CD, 
    P.PESS_DV, 
    P.PESS_NM, 
    P.PESS_CEFT_CD, 
    C.CEFT_DS 
FROM SP.PESSOAL P, SP.CAREFETIVO C 
WHERE P.PESS_CEFT_CD = C.CEFT_CD 
) where (
instr(upper("PESS_NM"),upper(nvl(:P164_NOME_PARTICIPANTE,"PESS_NM"))) > 0) 

Textfield Autocomplete properties on Page Designer

我試圖用一個大的限制(999)。 該表擁有相當數量的記錄(接近20000)。 當我刪除限制列表中的數量,一切工作正常。

這是什麼原因?

回答

0

你不應該包括where子句。 instr(upper("PESS_NM"),upper(nvl(:P164_NOME_PARTICIPANTE,"PESS_NM"))) > 0)

的Apex將本身的值進行過濾(可能的,它會包裹查詢在內部查詢,然後添加一個where子句本身)。通過在此處添加where子句,您可以設置自己的問題,因爲項目本身不會一直處於會話狀態。你提供的清單應該是完整清單(除非有父項應限制選擇)。

如:

SELECT P.PESS_NM 
FROM SP.PESSOAL P, SP.CAREFETIVO C 
WHERE P.PESS_CEFT_CD = C.CEFT_CD