APEX_IRパッケージは、Oracle Application Express環境でプログラミングする際に使用可能な、対話モード・レポートに関したユーティリティを提供します。APEX_IRパッケージを使用して、対話モード・レポートのランタイム問合せの取得、フィルタの追加、レポート設定のリセットまたは消去、保存されたレポートの削除およびサブスクリプションの管理が可能です。
トピック:
このプロシージャは、レポートIDを使用して対話モード・レポートにフィルタを作成します。
構文
APEX_IR.ADD_FILTER(
p_page_id IN NUMBER,
p_region_id IN NUMBER,
p_report_column IN VARCHAR2,
p_filter_value IN VARCHAR2,
p_operator_abbr IN VARCHAR2 DEFAULT NULL,
p_report_id IN NUMBER DEFAULT NULL);
パラメータ
表11-1に、ADD_FILTERプロシージャのシグネチャ1で使用可能なパラメータを示します。
表11-1 ADD_FILTERプロシージャのシグネチャ1のパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポートのリージョン(ID)。 |
|
p_report_column |
フィルタ処理されるレポートSQL列名または列の別名。 |
|
p_filter_value |
フィルタ値。この値はNおよびNNには使用されません。 |
|
p_operator_abbr |
フィルタ・タイプ。有効な値は次のとおりです。 EQ = 等しい NEQ = 等しくない LT = 未満 LTE = 以下 GT = より大きい GTE = 以上 LIKE = SQLのLike演算子 NLIKE = 次と相似でない N = Null NN = NULLではない C = 含む NC = 含まない IN = SQL In演算子 NIN = SQL Not In演算子 |
|
p_report_id |
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、ADD_FILTERプロシージャを使用して、DEPTNOが30で、カレント・アプリケーションのページ1でレポートIDが880629800374638220、リージョンが2505704029884282の対話モード・レポートをフィルタ処理する方法を示します。
BEGIN
APEX_IR.ADD_FILTER(
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_column => 'DEPTNO',
p_filter_value => '30',
p_operator_abbr => 'EQ',
p_report_id => 880629800374638220);
END;
このプロシージャは、レポート別名を使用して対話モード・レポートにフィルタを作成します。
構文
APEX_IR.ADD_FILTER(
p_page_id IN NUMBER,
p_region_id IN NUMBER,
p_report_column IN VARCHAR2,
p_filter_value IN VARCHAR2,
p_operator_abbr IN VARCHAR2 DEFAULT NULL,
p_report_alias IN VARCHAR2 DEFAULT NULL);
パラメータ
表11-2に、ADD_FILTERプロシージャのシグネチャ2で使用可能なパラメータを示します。
表11-2 ADD_FILTERプロシージャのシグネチャ2のパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポート・リージョン(ID)。 |
|
p_report_column |
フィルタ処理されるレポートSQL列名または列の別名。 |
|
p_filter_value |
これはフィルタ値です。この値はNおよびNNには使用されません。 |
|
p_operator_abbr |
フィルタ・タイプ。有効な値は次のとおりです。 EQ = 等しい NEQ = 等しくない LT = 未満 LTE = 以下 GT = より大きい GTE = 以上 LIKE = SQLのLike演算子 NLIKE = 類似ではない N = Null NN = NULLではない C = 含む NC = 含まない IN = SQL In演算子 NIN = SQL Not In演算子 |
|
|
カレント・アプリケーション・ページで保存したレポート別名。 |
例
次の例に、ADD_FILTERプロシージャを使用して、DEPTNOが30で、カレント・アプリケーションのページ1でレポート別名がCATEGORY_REPORT、リージョンが2505704029884282の対話モード・レポートをフィルタ処理する方法を示します。
BEGIN
APEX_IR.ADD_FILTER(
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_column => 'DEPTNO',
p_filter_value => '30',
p_operator_abbr => 'EQ',
p_report_alias => 'CATEGORY_REPORT');
END;
このプロシージャは、対話モード・レポートのサブスクリプションの言語を変更します。
構文
APEX_IR.CHANGE_SUBSCRIPTION_LANG(
p_subscription_id IN NUMBER,
p_language IN VARCHAR2);
パラメータ
表11-3に、使用可能なパラメータを示します
表11-3 CHANGE_SUBSCRIPTION_LANGプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
現行のワークスペース内の言語を変更するサブスクリプションID。 |
|
|
これはIANA言語コードです。 |
例
次の例に、CHANGE_SUBSCRIPTION_LANGプロシージャを使用して、現行のワークスペースでIDが567890123のサブスクリプションをドイツ語に変更する方法を示します。
BEGIN
APEX_IR.CHANGE_SUBSCRIPTION_LANG(
p_subscription_id => 567890123,
p_language => 'de');
END;
このプロシージャは、レポートIDを使用してレポート設定を消去します。
構文
APEX_IR.CLEAR_REPORT(
p_page_id IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);
パラメータ
表11-4に、CLEAR_REPORTプロシージャのシグネチャ1で使用可能なパラメータを示します。
表11-4 CLEAR_REPORTプロシージャのシグネチャ1のパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポート・リージョン(ID)。 |
|
p_report_id |
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、CLEAR_REPORTプロシージャを使用して、カレント・アプリケーションのページ1でレポートIDが880629800374638220、リージョンが2505704029884282の対話モード・レポート設定を消去する方法を示します。
BEGIN
APEX_IR.CLEAR_REPORT(
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_id => 880629800374638220);
END;
このプロシージャは、レポート別名を使用してレポート設定を消去します。
構文
APEX_IR.CLEAR_REPORT(
p_page_id IN NUMBER,
p_region_id IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);
パラメータ
表11-5に、CLEAR_REPORTプロシージャのシグネチャ2で使用可能なパラメータを示します。
表11-5 CLEAR_REPORTプロシージャのシグネチャ2のパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポート・リージョン(ID)。 |
|
p_report_alias |
カレント・アプリケーション・ページで保存したレポート別名。 |
例
次の例に、CLEAR_REPORTプロシージャを使用して、カレント・アプリケーションのページ1でレポート別名がCATEGORY_REPORT、リージョンが2505704029884282の対話モード・レポート設定を消去する方法を示します。
BEGIN
APEX_IR.CLEAR_REPORT(
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_alias => 'CATEGORY_REPORT');
END;
このプロシージャは、保存した対話モード・レポートを削除します。プライマリ・デフォルト・レポート以外のすべての保存済レポートを削除します。
構文
APEX_IR.DELETE_REPORT(
p_report_id IN NUMBER);
パラメータ
表11-6に、DELETE_REPORTプロシージャで使用可能なパラメータを示します。
例
次の例に、DELETE_REPORTプロシージャを使用して、カレント・アプリケーションでIDが880629800374638220の保存済の対話モード・レポートを削除する方法を示します。
BEGIN
APEX_IR.DELETE_REPORT (
p_report_id => 880629800374638220);
END;
このプロシージャは、対話モード・レポートのサブスクリプションを削除します。
構文
APEX_IR.DELETE_SUBSCRIPTION(
p_subscription_id IN NUMBER);
パラメータ
表11-7に、DELETE_SUBSCRIPTIONプロシージャで使用可能なパラメータを示します。
例
次の例に、DELETE_SUBSCRIPTIONプロシージャを使用して、現行のワークスペースでIDが567890123のサブスクリプションを削除する方法を示します。
BEGIN
APEX_IR.DELETE_SUBSCRIPTION(
p_subscription_id => 567890123);
END;
このファンクションは、指定したページおよびリージョンの最後に表示されたベース・レポートIDを返します。
構文
APEX_IR.GET_LAST_VIEWED_REPORT_ID(
p_page_id IN NUMBER,
p_region_id IN NUMBER);
パラメータ
表11-8に、GET_LAST_VIEWDED_REPORT_IDファンクションで使用可能なパラメータを示します。
表11-8 GET_LAST_VIEWED_REPORT_IDファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポートのリージョンID。 |
例
次の例に、GET_LAST_VIEWED_REPORT_IDファンクションを使用して、カレント・アプリケーションのページ1で、リージョンが2505704029884282の最後に表示されたレポートIDを取得する方法を示します。
DECLARE
l_report_id number;
BEGIN
l_report_id := APEX_IR.GET_LAST_VIEWED_REPORT_ID (
p_page_id => 1,
p_region_id => 2505704029884282);
END;
このファンクションは、対話モード・レポートのランタイム問合せを返します。
構文
APEX_IR.GET_REPOR(
p_page_id IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);
パラメータ
表11-9に、GET_REPORTファンクションで使用可能なパラメータを示します。
表11-9 GET_REPORTファンクションのパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポート・リージョンのID。 |
|
p_report_id |
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、GET_REPORTファンクションを使用して、カレント・アプリケーションのページ1でレポートIDが880629800374638220、リージョンが2505704029884282のバインド変数情報を含むランタイム・レポート問合せを取得する方法を示します。
DECLARE
l_report apex_ir.t_report;
l_query varchar2(32767);
BEGIN
l_report := APEX_IR.GET_REPORT (
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_id => 880629800374638220);
l_query := l_report.sql_query;
for i in 1..l_report.binds.count
loop
dbms_output.put_line(i||'. '||
l_report.binds(i).name||
'='||l_report.binds(i).value);
end loop;
END;
このプロシージャは、レポートIDを使用して、レポート設定を開発者が定義したデフォルト設定にリセットします。
構文
APEX_IR.RESET_REPORT(
p_page_id IN NUMBER,
p_region_id IN NUMBER,
p_report_id IN NUMBER DEFAULT NULL);
パラメータ
表11-10に、RESET_REPORTプロシージャのシグネチャ1で使用可能なパラメータを示します。
表11-10 RESET_REPORTプロシージャのシグネチャ1のパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポート・リージョンのID。 |
|
p_report_id |
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、RESET_REPORTプロシージャのシグネチャ1を使用して、カレント・アプリケーションのページ1でレポートIDが880629800374638220、リージョンが2505704029884282の対話モード・レポート設定をリセットする方法を示します。
BEGIN
APEX_IR.RESET_REPORT(
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_id => 880629800374638220);
END;
このプロシージャは、レポート別名を使用してレポート設定をリセットします。
構文
APEX_IR.RESET_REPORT(
p_page_id IN NUMBER,
p_region_id IN NUMBER,
p_report_alias IN VARCHAR2 DEFAULT NULL);
パラメータ
表11-11に、RESET_REPORTプロシージャのシグネチャ2で使用可能なパラメータを示します。
表11-11 RESET_REPORTプロシージャのシグネチャ2のパラメータ
| パラメータ | 説明 |
|---|---|
|
p_page_id |
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
p_region_id |
対話モード・レポート・リージョンのID。 |
|
p_report_alias |
カレント・アプリケーション・ページで保存したレポート別名。 |
例
次の例に、RESET_REPORTプロシージャを使用して、カレント・アプリケーションのページ1でレポート別名がCATEGORY_REPORT、リージョンが2505704029884282の対話モード・レポート設定をリセットする方法を示します。
BEGIN
APEX_IR.RESET_REPORT(
p_page_id => 1,
p_region_id => 2505704029884282,
p_report_alias => 'CATEGORY_REPORT');
END;