文本字段自动完成

时间:2016-09-20 19:53:20

标签: sql autocomplete oracle-apex

我使用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)。 我删除列表中的itens数量限制的那一刻,一切正常。

这是什么原因?

1 个答案:

答案 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