【问题标题】:OBIEE - Using "IN" & "NOT IN" within Column FormulaOBIEE - 在列公式中使用“IN”和“NOT IN”
【发布时间】:2017-09-18 08:56:47
【问题描述】:

如果可以的话,在这里寻求帮助。

我有一个可变仪表板提示,当它放置在仪表板上时可用于选择多个站点。此变量称为 V_SITES。它的列表是使用 SQL 语句构建的,该语句按预期运行。

我已将以下内容输入到列公式中。

sum(Case
When "Folder_Heading"."SITES" IN (@{V_SITES}{'Site1','Site2','Site3'})
Then 1
Else 0
End)

当我不分配变量时,这很好用。 但是,一旦我分配变量说('Site1','Site2','Site3')。

失败,并显示以下消息。

Error Codes: OAMP2OPY:OPR4ONWY:U9IM8TAC:U9IM8TAC:U9IM8TAC:U9IM8TAC:OI2DL65P:OI2DL65P

SQL Issued: SELECT sum(Case When "Folder_Heading"."SITES" IN (Site1,Site2,Site3) Then 1 Else 0 End) FROM "Test_Cube"

我注意到它丢失了所有重要的引号(Site1、Site2、Site3)...如果这是导致问题的原因,我不明白为什么会发生这种情况,因为我已将 V_SITES 设为 TEXT。

请帮忙!

非常感谢

P

编辑:经过大量测试,我相当有信心问题出在 构建 sql 时,Oracle 没有将我的文本用单引号括起来 字符串...只需要弄清楚如何制作它...

.

【问题讨论】:

    标签: oracle business-intelligence obiee


    【解决方案1】:

    结果我遇到了同样的问题,虽然 Shakey 的解决方案有效,但真正的解决方案是在公式中使用 ['@'](来自 Oracle 技术支持:Formula Syntax to Populate Multi-Select Presentation Variable(文档 ID 2063624.1 ))

    sum(Case
    When "Folder_Heading"."SITES" IN (@{V_SITES}['@']{'Site1','Site2','Site3'})
    Then 1
    Else 0
    End)
    

    【讨论】:

    【解决方案2】:

    确定这是一个 Oracle 错误...

    这是我的解决方法,以防其他人遇到此问题...但是,如果有更好的解决方法或修复方法,我很高兴得到纠正!

    问题是当 OBIEE 构建 SQL 字符串时,它没有对变量进行文本限定。 所以我自己通过修改参数中的可用值列表来对其进行文本限定。

    SELECT DISTINCT CHAR(39) || "TEST_CUBE"."FOLDER_HEADING"."SITES" || CHAR(39) s_1 FROM "TEST_CUBE" ORDER BY 1 ASC
    

    唯一烦人的是我现在在每个值的开头和结尾都有 '。

    希望这对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-12-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      相关资源
      最近更新 更多