2017-11-02 6 views
0

私はORACLE APEX 5.1.1を使用しており、「SQLクエリを返すPL/SQL関数本体」に基づいてグラフを表示します。この機能は、選択リストの値に基づいてSQLクエリを変更します。したがって、選択リストが変更されるたびにチャートが変更されます。私はすべてのクエリと動的アクションが必要で、機能はうまく動作するように設定しました。しかし、グラフには、間違った「ラベルスロット」(x軸のカテゴリ)の値が表示されます。誤ったグラフの表示を明確にするために、まったく同じ機能に基づいた古典的なレポートを作成しました。これは値を正しく表示します。ORACLE APEX 5.1.1:PL/SQL関数に基づくグラフが間違ったラベルの値を表示

https://apex.oracle.comの私の評価勘定にミニマルの例を複製しました。そこにはすべてが、それがあるはずのやり方です。 apex.oracle.comは現在バージョン5.1.3です。だから私はこれが修正されたバージョン5.1.1のバグかどうか疑問に思っています。私は、リリースノートでこの問題について何も見つけることができません。 誰でもこのバグについて知っているのですか、5.1.1で私の問題を助けてくれますか?残念ながら私の企業環境では5.1.3にアップグレードすることはできません。

declare 
    q varchar2(32767); 

begin 
    q := 
' 
select 
    type1, type2, sum(to_number(val)) as val 
from (
SELECT ''a'' as type1, ''x'' as type2, ''1'' as val 
    FROM DUAL 
UNION ALL 
SELECT ''a'' as type1, ''y'' as type2, ''2'' as val 
    FROM DUAL 
UNION ALL 
SELECT ''a'' as type1, ''z'' as type2, ''3'' as val 
    FROM DUAL 
UNION ALL 
SELECT ''b'' as type1, ''x'' as type2, ''3'' as val 
    FROM DUAL 
UNION ALL 
SELECT ''b'' as type1, ''z'' as type2, ''3'' as val 
    FROM DUAL 
    UNION ALL 
SELECT ''c'' as type1, ''x'' as type2, ''2'' as val 
    FROM DUAL 
    UNION ALL 
SELECT ''c'' as type1, ''y'' as type2, ''-2'' as val 
    FROM DUAL 
    UNION ALL 
SELECT ''d'' as type1, ''y'' as type2, ''-3'' as val 
    FROM DUAL 
    UNION ALL 
SELECT ''d'' as type1, ''z'' as type2, ''1'' as val 
    FROM DUAL 
UNION ALL 
SELECT ''e'' as type1, ''x'' as type2, ''1'' as val 
    FROM DUAL 
UNION ALL 
SELECT ''a'' as type1, ''z'' as type2, ''3'' as val 
    FROM DUAL 
) 
' 
; 
    if :TEST_VALS = 'only positive' then q := q || ' where val >= 0'; 
    elsif :TEST_VALS = 'only negative' then q := q || ' where val <= 0'; 
    end if; 
    q := q || ' group by type1, type2 order by type1, type2'; 
    return q; 
end; 

:TEST_VALS

は値 all, only positive, only negativeと静的選択リストを参照:

は、ここで私は両方のために使用するPL/SQL、古典的なレポートやチャートです。ダイナミックアクションは、選択リストの変更時にリフレッシュ、クラシックレポートおよびチャートに「送信するページアイテム」を設定します。

以下に、5.1.1のバグと5.1.3の正しいチャート表示を示す3つのスクリーンショットを示します。 "全て" 5.1.1および選択に

間違っチャート: "正の値のみ" 5.1.1および選択に enter image description here

間違っチャート:5.1.3と enter image description here

正しいチャート(オンウェブ評価勘定): enter image description here

答えて

0

は結局、私はここで自分の答えを見つけました:https://community.oracle.com/thread/4069783

この問題はPL/SQLファンクションとは関係ありませんでした。 ORACLE APEXのバージョン5.1.3より前のチャートでは、各シリーズに同じ数のデータポイントが存在する必要がありました。したがって、クエリにデータの稠密化を追加する必要があります。私は

は5.1のために、我々は意図的に自分のSQLクエリを経由して処理するために 顧客にデータの「高密度化を」左...これは最適ではなかったORACLEの開発者の以下の引用文に同意します。しかし、これにより、 フォーラムと会議で混乱と多数の質問が発生しました。 今後の5.1.3パッチセットリリースの動作を改訂しました。そのリリースでは、不完全なデータポイントの挿入を で自動的に処理し、得られたJSON オブジェクトが、複数のシリーズの各シリーズで同じデータ数を持つJETの要件を満たすようにしますx軸ラベル。 5.1.3がいつ利用可能になるかの詳細を提供することはできませんので、今度は の場合、クエリの高密度化を管理できます。

関連する問題