プライマリ・コンテンツに移動
Oracle® Application Express APIリファレンス
リリース5.0
E67397-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

12 APEX_IR

APEX_IRパッケージは、対話モード・レポートに関連付けられたOracle Application Express環境でプログラミングする際に使用可能なユーティリティを提供します。APEX_IRパッケージを使用すると、対話モード・レポートの実行時の問合せの取得、フィルタの追加、レポート設定のリセットまたはクリア、保存されたレポートの削除およびサブスクリプションの管理が可能です。

ADD_FILTERプロシージャのシグネチャ1

このプロシージャは、レポート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のパラメータ

パラメータ 説明

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。p_report_idがNULLの場合、最後に表示されたレポート設定にフィルタが追加されます。


次の例に、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;

ADD_FILTERプロシージャのシグネチャ2

このプロシージャは、レポート別名を使用して、対話モード・レポートにフィルタを作成します。


注意:

ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(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

パラメータ 説明

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_alias

カレント・アプリケーション・ページで保存したレポート別名。p_report_aliasがNULLの場合、最後に表示されたレポート設定にフィルタが追加されます。


次の例に、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;

CHANGE_SUBSCRIPTION_EMAILプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションの電子メール・アドレスを変更します。電子メールが送信されると、サブスクリプションにより、定義した電子メール・アドレスにメッセージが送信されます。

構文

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のパラメータ

パラメータ 説明

p_subscription_id

現在のワークスペース内で電子メール・アドレスを変更するサブスクリプションID。

p_email_address

変更後の新しい電子メール・アドレス。電子メール・アドレスは、有効な電子メール構文である必要があり、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;

CHANGE_REPORT_OWNERプロシージャ

このプロシージャは、レポート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プロシージャ

パラメータ 説明

p_report_id

カレント・アプリケーション・ページで保存したレポートID。

p_old_owner

変更前の所有者の名前(大/小文字を区別)。所有者は、レポートにアクセスする有効なログイン・ユーザーである必要があります。

p_new_owner

変更後の新しい所有者の名前(大/小文字を区別)。所有者は、レポートにアクセスする有効なログイン・ユーザーである必要があります。


次の例に、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;

CHANGE_SUBSCRIPTION_EMAILプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションの電子メール・アドレスを変更します。電子メールが送信されると、サブスクリプションにより、定義した電子メール・アドレスにメッセージが送信されます。

構文

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のパラメータ

パラメータ 説明

p_subscription_id

現在のワークスペース内で電子メール・アドレスを変更するサブスクリプションID。

p_email_address

変更後の新しい電子メール・アドレス。電子メール・アドレスは、有効な電子メール構文である必要があり、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;

CHANGE_SUBSCRIPTION_LANGプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションの言語を変更します。

構文

APEX_IR.CHANGE_SUBSCRIPTION_LANG(
    p_subscription_id IN NUMBER,
    p_language        IN VARCHAR2);

パラメータ

表12-6では、使用可能なパラメータについて説明します。

表12-6 CHANGE_SUBSCRIPTION_LANGプロシージャのパラメータ

パラメータ 説明

p_subscription_id

現行のワークスペース内の言語を変更するサブスクリプションID。

p_language

これはIANA言語コードです。endede-atzh-cnpt-brなどがあります。


次の例に、CHANGE_SUBSCRIPTION_LANGプロシージャを使用して、現行のワークスペースにあるIDが567890123のサブスクリプションをドイツ語に変更する方法を示します。

BEGIN     
    APEX_IR.CHANGE_SUBSCRIPTION_LANG(
        p_subscription_id => 567890123,
        p_language        => 'de');
END;

CLEAR_REPORTプロシージャのシグネチャ1

このプロシージャは、レポート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のパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_region_id

対話モード・レポート・リージョン(ID)。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがNULLの場合、最後に表示されたレポート設定がクリアされます。


次の例に、CLEAR_REPORTプロシージャを使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン2505704029884282を持つ対話モード・レポート設定をクリアする方法を示します。

BEGIN     
    APEX_IR.CLEAR_REPORT(
        p_page_id      => 1,
        p_region_id    => 2505704029884282,
        p_report_id    => 880629800374638220);
END;

CLEAR_REPORTプロシージャのシグネチャ2

このプロシージャは、レポート別名を使用して、レポート設定をクリアします。


注意:

ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(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のパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_region_id

対話モード・レポート・リージョン(ID)。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名。p_report_aliasがNULLの場合、最後に表示されたレポート設定がクリアされます。


次の例に、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;

DELETE_REPORTプロシージャ

このプロシージャは、保存した対話モード・レポートを削除します。現在ログインしているワークスペースおよびアプリケーションで、特定の保存されたレポートを削除します。

構文

APEX_IR.DELETE_REPORT(
    p_report_id IN NUMBER);

パラメータ

表12-9では、DELETE_REPORTプロシージャで使用可能なパラメータについて説明します。

表12-9 DELETE_REPORTプロシージャのパラメータ

パラメータ 説明

p_report_id

Application Expressのカレント・アプリケーションで削除するレポートID。


次の例に、DELETE_REPORTプロシージャを使用して、カレント・アプリケーションにあるIDが880629800374638220の保存済の対話モード・レポートを削除する方法を示します。

BEGIN
    APEX_IR.DELETE_REPORT (
        p_report_id => 880629800374638220);
END;

DELETE_SUBSCRIPTIONプロシージャ

このプロシージャは、対話モード・レポートのサブスクリプションを削除します。

構文

APEX_IR.DELETE_SUBSCRIPTION(
    p_subscription_id IN NUMBER);

パラメータ

表12-10では、DELETE_SUBSCRIPTIONプロシージャで使用可能なパラメータについて説明します。

表12-10 DELETE_SUBSCRIPTIONプロシージャのパラメータ

パラメータ 説明

p_subscription_id

現行のワークスペース内の削除するサブスクリプションID。


次の例に、DELETE_SUBSCRIPTIONプロシージャを使用して、現行のワークスペースにあるIDが567890123のサブスクリプションを削除する方法を示します。

BEGIN     
    APEX_IR.DELETE_SUBSCRIPTION(
        p_subscription_id => 567890123);
END;

GET_LAST_VIEWED_REPORT_IDファンクション

このファンクションは、指定されたページおよびリージョンで最後に表示された基本レポートの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ファンクションのパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_region_id

対話モード・レポート・リージョンの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;

GET_REPORTファンクション

このファンクションは、対話モード・レポートの実行時の問合せを戻します。

構文

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ファンクションのパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_region_id

対話モード・レポート・リージョンのID。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがNULLの場合、最後に表示されたレポート問合せが取得されます。


次の例に、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;

RESET_REPORTプロシージャのシグネチャ1

このプロシージャは、レポート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のパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_region_id

対話モード・レポート・リージョンのID。

p_report_id

カレント・アプリケーション・ページで保存したレポートID。p_report_idがNULLの場合、最後に表示されたレポート設定がリセットされます。


次の例に、RESET_REPORTプロシージャのシグネチャ1を使用して、カレント・アプリケーションのページ1にレポートID880629800374638220、リージョン2505704029884282を持つ対話モード・レポート設定をリセットする方法を示します。

BEGIN     
    APEX_IR.RESET_REPORT(
        p_page_id      => 1,
        p_region_id    => 2505704029884282,
        p_report_id    => 880629800374638220);
END;

RESET_REPORTプロシージャのシグネチャ2

このプロシージャは、レポート別名を使用して、レポート設定をリセットします。


注意:

ページ・レンダリング・プロセスでこのプロシージャを使用すると、レポートのダウンロード問題(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のパラメータ

パラメータ 説明

p_page_id

対話モード・レポートを含む、Application Expressのカレント・アプリケーションのページ。

p_region_id

対話モード・レポート・リージョンのID。

p_report_alias

カレント・アプリケーション・ページで保存したレポート別名。p_report_aliasがNULLの場合、最後に表示されたレポート設定がリセットされます。


次の例に、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;