我使用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 )
我试图使用大限制(999)。 该表拥有相当数量的记录(接近20000)。 我删除列表中的itens数量限制的那一刻,一切正常。
这是什么原因?
答案 0 :(得分:0)
你不应该包括where子句。 instr(upper("PESS_NM"),upper(nvl(:P164_NOME_PARTICIPANTE,"PESS_NM"))) > 0 )
Apex本身将对值进行过滤(可能,它会在内部查询中包装您的查询,然后添加where子句本身)。通过添加where where子句,您可以自行设置问题,因为项目本身不会经常进入会话状态。您提供的列表应该是完整列表(除非有父项应限制选择)。
例如:
SELECT P.PESS_NM
FROM SP.PESSOAL P, SP.CAREFETIVO C
WHERE P.PESS_CEFT_CD = C.CEFT_CD