APEX_IR
パッケージは、対話モード・レポートに関連付けられたOracle Application Express環境でプログラミングする際に使用可能なユーティリティを提供します。APEX_IR
パッケージを使用すると、対話モード・レポートの実行時の問合せの取得、フィルタの追加、レポート設定のリセットまたはクリア、保存されたレポートの削除およびサブスクリプションの管理が可能です。
このプロシージャは、レポートIDを使用して、対話モード・レポートにフィルタを作成します。
注意: ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。 |
構文
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);
パラメータ
表12-1では、ADD_FILTERプロシージャのシグネチャ1で使用可能なパラメータについて説明します。
表12-1 ADD_FILTERプロシージャのシグネチャ1のパラメータ
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョン(ID)。 |
|
フィルタ処理されるレポートSQL列名または列の別名。 |
|
フィルタ値。この値はNおよびNNには使用されません。 |
|
フィルタ・タイプ。有効な値は次のとおりです。 EQ = 等しい NEQ = 等しくない LT = 未満 LTE = 以下 GT = より大きい GTE = 以上 LIKE = SQLのLike演算子 NLIKE = 類似ではない N = Null NN = NULLではない C = 含む NC = 含まない IN = SQL In演算子 NIN = SQL Not In演算子 |
|
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、ADD_FILTER
プロシージャを使用して、DEPTNO
が30で、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン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;
このプロシージャは、レポート別名を使用して、対話モード・レポートにフィルタを作成します。
注意: ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。 |
構文
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);
パラメータ
表12-2では、ADD_FILTERプロシージャのシグネチャ2で使用可能なパラメータについて説明します。
表12-2 ADD_FILTERプロシージャのシグネチャ2
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョン(ID)。 |
|
フィルタ処理されるレポートSQL列名または列の別名。 |
|
これはフィルタ値です。この値はNおよびNNには使用されません。 |
|
フィルタ・タイプ。有効な値は次のとおりです。 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_EMAIL ( p_subscription_id IN NUMBER, p_email_address IN VARCHAR2);
パラメータ
表12-3では、CHANGE_SUBSCRIPTION_EMAIL
プロシージャで使用可能なパラメータについて説明します。
表12-3 CHANGE_SUBSCRIPTION_EMAILのパラメータ
パラメータ | 説明 |
---|---|
|
現在のワークスペース内で電子メール・アドレスを変更するサブスクリプションID。 |
|
変更後の新しい電子メール・アドレス。電子メール・アドレスは、有効な電子メール構文である必要があり、nullに設定することはできません。 |
例
次の例に、CHANGE_SUBSCRIPTION_EMAIL
プロシージャを使用して、対話モード・レポートのサブスクリプション956136850459718525の電子メール・アドレスをsome.user@somecompany.com
に変更する方法を示します。
BEGIN APEX_IR.CHANGE_SUBSCRIPTION_EMAIL ( p_subscription_id => 956136850459718525, p_email_address => 'some.user@somecompany.com'); END;
このプロシージャは、レポートIDを使用して保存された対話モード・レポートの所有者を変更します。このプロシージャでは、デフォルトの対話モード・レポートの所有者を変更できません。
構文
APEX_IR.CHANGE_REPORT_OWNER ( p_report_id in number, p_old_owner in varchar2, p_new_owner in varchar2);
パラメータ
表12-4では、CHANGE_REPORT_OWNERプロシージャで使用可能なパラメータについて説明します。
表12-4 CHANGE_REPORT_OWNERプロシージャ
パラメータ | 説明 |
---|---|
|
カレント・アプリケーション・ページで保存したレポートID。 |
|
変更前の所有者の名前(大/小文字を区別)。所有者は、レポートにアクセスする有効なログイン・ユーザーである必要があります。 |
|
変更後の新しい所有者の名前(大/小文字を区別)。所有者は、レポートにアクセスする有効なログイン・ユーザーである必要があります。 |
例
次の例に、CHANGE_REPORT_OWNER
プロシージャを使用して、保存されたレポートのJOHNという古い所有者の名前をJOHN.DOEという新しい所有者の名前に変更する方法を示します。保存されたレポートのレポートIDは1235704029884282です。
BEGIN APEX_IR.CHANGE_REPORT_OWNER ( p_report_id => 1235704029884282, p_old_owner => 'JOHN', p_new_owner => 'JOHN.DOE'); END;
このプロシージャは、対話モード・レポートのサブスクリプションの電子メール・アドレスを変更します。電子メールが送信されると、サブスクリプションにより、定義した電子メール・アドレスにメッセージが送信されます。
構文
APEX_IR.CHANGE_SUBSCRIPTION_EMAIL ( p_subscription_id IN NUMBER, p_email_address IN VARCHAR2);
パラメータ
表12-5では、CHANGE_SUBSCRIPTION_EMAIL
プロシージャで使用可能なパラメータについて説明します。
表12-5 CHANGE_SUBSCRIPTION_EMAILのパラメータ
パラメータ | 説明 |
---|---|
|
現在のワークスペース内で電子メール・アドレスを変更するサブスクリプションID。 |
|
変更後の新しい電子メール・アドレス。電子メール・アドレスは、有効な電子メール構文である必要があり、nullに設定することはできません。 |
例
次の例に、CHANGE_SUBSCRIPTION_EMAIL
プロシージャを使用して、対話モード・レポートのサブスクリプション956136850459718525の電子メール・アドレスをsome.user@somecompany.com
に変更する方法を示します。
BEGIN APEX_IR.CHANGE_SUBSCRIPTION_EMAIL ( p_subscription_id => 956136850459718525, p_email_address => 'some.user@somecompany.com'); END;
このプロシージャは、対話モード・レポートのサブスクリプションの言語を変更します。
構文
APEX_IR.CHANGE_SUBSCRIPTION_LANG( p_subscription_id IN NUMBER, p_language IN VARCHAR2);
パラメータ
表12-6では、使用可能なパラメータについて説明します。
表12-6 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を使用して、レポート設定をクリアします。
注意: ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。 |
構文
APEX_IR.CLEAR_REPORT( p_page_id IN NUMBER, p_region_id IN NUMBER, p_report_id IN NUMBER DEFAULT NULL);
パラメータ
表12-7では、CLEAR_REPORTプロシージャのシグネチャ1で使用可能なパラメータについて説明します。
表12-7 CLEAR_REPORTプロシージャのシグネチャ1のパラメータ
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョン(ID)。 |
|
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、CLEAR_REPORT
プロシージャを使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン2505704029884282を持つ対話モード・レポート設定をクリアする方法を示します。
BEGIN APEX_IR.CLEAR_REPORT( p_page_id => 1, p_region_id => 2505704029884282, p_report_id => 880629800374638220); END;
このプロシージャは、レポート別名を使用して、レポート設定をクリアします。
注意: ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。 |
構文
APEX_IR.CLEAR_REPORT( p_page_id IN NUMBER, p_region_id IN NUMBER, p_report_alias IN VARCHAR2 DEFAULT NULL);
パラメータ
表12-8では、CLEAR_REPORT
プロシージャのシグネチャ2で使用可能なパラメータについて説明します。
表12-8 CLEAR_REPORTプロシージャのシグネチャ2のパラメータ
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョン(ID)。 |
|
カレント・アプリケーション・ページで保存したレポート別名。 |
例
次の例に、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);
パラメータ
表12-9では、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);
パラメータ
表12-10では、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);
パラメータ
表12-11では、GET_LAST_VIEWED_REPORT_IDファンクションで使用可能なパラメータについて説明します。
表12-11 GET_LAST_VIEWED_REPORT_IDファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョンのID。 |
例
次の例に、GET_LAST_VIEWED_REPORT_ID
ファンクションを使用して、リージョンが2505704029884282のカレント・アプリケーションのページ1で最後に表示されたレポート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_REPORT( p_page_id IN NUMBER, p_region_id IN NUMBER, p_report_id IN NUMBER DEFAULT NULL);
パラメータ
表12-12では、GET_REPORTファンクションで使用可能なパラメータについて説明します。
表12-12 GET_REPORTファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョンのID。 |
|
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、GET_REPORT
ファンクションを使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン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; sys.htp.p('Statement = '||l_report.sql_query); for i in 1..l_report.binds.count loop sys.htp.p(i||'. '||l_report.binds(i).name||' = '||l_report.binds(i).value); end loop; END;
このプロシージャは、レポートIDを使用して、レポート設定を開発者が定義したデフォルト設定にリセットします。
注意: ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。 |
構文
APEX_IR.RESET_REPORT( p_page_id IN NUMBER, p_region_id IN NUMBER, p_report_id IN NUMBER DEFAULT NULL);
パラメータ
表12-13では、RESET_REPORT
プロシージャのシグネチャ1で使用可能なパラメータについて説明します。
表12-13 RESET_REPORTプロシージャのシグネチャ1のパラメータ
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョンのID。 |
|
カレント・アプリケーション・ページで保存したレポートID。 |
例
次の例に、RESET_REPORT
プロシージャのシグネチャ1を使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン2505704029884282を持つ対話モード・レポート設定をリセットする方法を示します。
BEGIN APEX_IR.RESET_REPORT( p_page_id => 1, p_region_id => 2505704029884282, p_report_id => 880629800374638220); END;
このプロシージャは、レポート別名を使用して、レポート設定をリセットします。
注意: ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(CSV、HTML、電子メールなど)が発生します。ユーザーがレポートをダウンロードすると、対話モード・レポートでは、REQUEST値のダウンロード形式でページがリロードされます。対話モード・レポートの設定を変更すると(フィルタの追加やレポートのリセットなど)、部分的にページがリフレッシュされます。したがって、ダウンロード・データがユーザーが参照しているレポート・データと一致しないことがあります。このため、ページ発行プロセスでのみこのプロシージャを使用することをお薦めします。 |
構文
APEX_IR.RESET_REPORT( p_page_id IN NUMBER, p_region_id IN NUMBER, p_report_alias IN VARCHAR2 DEFAULT NULL);
パラメータ
表12-14では、RESET_REPORTプロシージャのシグネチャ2で使用可能なパラメータについて説明します。
表12-14 RESET_REPORTプロシージャのシグネチャ2のパラメータ
パラメータ | 説明 |
---|---|
|
対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。 |
|
対話モード・レポート・リージョンのID。 |
|
カレント・アプリケーション・ページで保存したレポート別名。 |
例
次の例に、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;