2017-04-21 15 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) 

これは、変数を割り当てないときれいに機能します。 しかし、変数( '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

EDITは:テストの負荷の後、私はこの問題は、SQL 文字列を構築する際に、Oracleは一重引用符で私のテキストをラップされていない であることをかなり確信しています。 ..それを作る方法を理解するだけでいいです...

答えて

0

Shakeyのソリューションが機能する間、私は同じ問題を抱えていましたが、本当の解決策は、式で['@']を使用することです(オラクルのテクニカルサポート:数式構文を使用して複数選択プレゼンテーション変数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

これは、OracleのバグでOK確信...

これは、誰がこの直面してくる場合には、私の回避策です...しかし、私はより良い回避策がある場合は修正することは非常に満足しているか修正!

問題は、OBIEEがSQL文字列を作成して、テキストに変数を修飾しないことが問題でした。 したがって、パラメータで使用可能な値のリストを変更することによって、自分自身でテキストを修飾しました。

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

「すべての価値の開始時と終了時には迷惑なことがあります。

これは他の人に役立つことを願っています。

関連する問題