2017-04-21 36 views
0

如果可能,請在此尋求幫助。OBIEE - 在列公式中使用「IN」和「NOT IN」

我有一個可變儀表板提示,當它放置在儀表板上時可以用來選擇多個站點。這個變量被稱爲V_SITES。它的列表是使用按照預期運行的SQL語句構建的。

我已將以下內容輸入到列公式中。

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

這工作很好,當我不分配變量。 然而,只要我分配了變量say('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" 

我注意到,它失去這些所有重要的引號(站點1,站點2,Site3)......如果這是造成問題,我不明白爲什麼,因爲我已經告訴V_SITES是這種情況的發生文本。

請幫忙!

非常感謝

P

編輯:經過測試的負載,我相當有信心,這個問題是 構建SQL字符串 當Oracle不包裝我的文字用單引號。 ..只需要弄清楚如何使它...

回答

0

原來我有同樣的問題,雖然Shakey的解決方案有效,但真正的解決方案是在公式中使用['@'](從Oracle技術支持:公式語法到填充多選擇顯示變量(Doc ID 2063624.1))

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

您是否有支持文檔的鏈接,您可以在您的答案上添加? – doublesidedstickytape

+0

以下是鏈接:https://support.oracle.com/epmos/faces/DocumentDisplay?id = 2063624.1 – Kristof

0

OK深信這是一個Oracle錯誤...

這是我的情況下,任何人的解決辦法碰到這個......不過我很高興,如果有更好的解決辦法或予以糾正修復!

問題出在OBIEE構建的SQL字符串不符合變量時。 因此,我通過修改Parameter中可用值的列表來自定義它。

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

只有討厭的事情是我現在'在每個價值的開始和結束。

希望這可以幫助別人。