我有一个在 Oracle OTBI 中作为数据分析编写的查询,我在 BIP 数据模型中使用它,并且正在为 Oracle BI EE 逻辑 SQL 构建参数。下面的参数 :P_Item_Number 我想在 WHERE 子句中用作可选的多选参数,用户可以选择 1 个或多个项目编号,或他们可以将其设置为 All,以便它不会过滤项目.
AND ("Main"."Item" IN(IFNULL(:P_Item_Number, null)) or :P_Item_Number IS NULL)
我在尝试验证该声明时收到以下错误:
java.io.IOException: prepare query failed[nQSError: 43113] Message returned from OBIS. [nQSError: 43119]
Query Failed: [nQSError: 46033] Datatype: 25 is not supported.
:P_Item_Number
参数是用于多重选择的字符串参数设置:
我需要更新什么语法才能使其正常工作?预先感谢。
我很幸运地使用了Where语句的这种结构,当然可以替换你的值:
WHERE (papf.person_number IN (:personnumber) OR 'All' IN (:personnumber || 'All'))
我在此找到的最好的文本参数如下:
AND (IFNULL("Main"."Item", 'NULL') IN (:P_Item_Number) OR IFNULL("Main"."Item", 'NULL') IN (CASE WHEN 'null' IN (:P_Item_Number) THEN IFNULL("主"."项目", 'NULL') END))
默认情况下,当值为空时,OBIEE 参数显示文本值“null”。 这与 NULL 不同。
我发现,如果值为 NULL,某些参数在创建文本值时也会做得更好,因此使用 IFNULL 函数。 但您可以键入您选择的任何单词来替换 NULL。 它不一定是“NULL”。
希望这有帮助。