Oracle Apex 5 - where子句中的复选框列表不起作用,为什么?

时间:2017-06-21 13:52:46

标签: plsql oracle-apex oracle-apex-5 oracle-apex-5.1

我有一个古怪的问题。我有一个复选框,一个报告表,我想点击一个复选框或多个复选框来返回结果。在数据库中,我有一个由冒号分隔的复选框结果的保存列表:

这一切都有效,除非我勾选方框' A'和' C'。这是数据库中的第一个也是最后一个结果。我可以点击A和B或只是A或只是C或C和B但是当我点击A和C时它不起作用。

任何线索?

select ...

from ...

where 

AND (CASE WHEN :P1_BENEFITS_TAG IS NOT NULL 
     THEN instr( ':'|| UPPER(b.BENEFITS_TAGS)||':',
                 ':'|| UPPER(:P1_BENEFITS_TAG) ||':' )
     ELSE 1 
     END) > 0

enter image description here

1 个答案:

答案 0 :(得分:2)

您的数据库行似乎包含字符串' A:B:C:'。

时间:P1_BENEFITS_TAG是任何值' A:B',' B:C',' A',' B'或者' C'那么数据库行"包含"该值和您的INSTR表达式将返回一个数字> 0

然而,' A:B:C'不包含字符串' A:C',因此INSTR将返回0。