45.18 GET_DATA2ファンクションのシグネチャ2

提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、元のデータ型に従って戻されます。

検索列は、p_search_column_nameパラメータに列名を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。

構文

APEX_PLUGIN_UTIL.GET_DATA2 (
    p_sql_statement      IN VARCHAR2,
    p_min_columns        IN NUMBER,
    p_max_columns        IN NUMBER,
    p_data_type_list     IN apex_application_global.vc_arr2 DEFAULT c_empty_data_type_list,
    p_component_name     IN VARCHAR2,
    p_search_type        IN VARCHAR2                        DEFAULT NULL,
    p_search_column_name IN VARCHAR2                        DEFAULT NULL,
    p_search_string      IN VARCHAR2                        DEFAULT NULL,
    p_first_row          IN NUMBER                          DEFAULT NULL,
    p_max_rows           IN NUMBER                          DEFAULT NULL,
    p_auto_bind_items    IN BOOLEAN                         DEFAULT TRUE,
    p_bind_list          IN t_bind_list                     DEFAULT c_empty_bind_list )
    RETURN t_column_list;

パラメータ

パラメータ 説明
p_sql_statement 参照に使用されるSQL文。
p_min_columns 戻り列の最小数。
p_max_columns 戻り列の最大数。
p_data_type_list 指定する場合は、各列のデータ型が配列内の指定されたデータ型と一致することを確認します。使用可能なデータ型の定数c_data_type_*を使用します。
p_component_name エラーが戻される場合、エラー・メッセージが表示される際のページ・アイテムまたはレポート列の名前として、この値が使用されます。
p_search_type c_search_*定数のいずれかである必要があります。c_search_*定数は、c_search_contains_casec_search_contains_ignorec_search_exact_casec_search_exact_ignoreです。
p_search_column_name SQL文を制限するために使用する列名。
p_search_string 問合せを制限するために使用する値。
p_first_row 指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。
p_max_rows 可能な戻り行の最大数。
p_auto_bind_items APEXアイテム(ページおよびアプリケーション・アイテム)を自動的にバインドするかどうか。
p_bind_list SQL問合せに使用する追加のバインド変数。

戻り値

パラメータ 説明
t_column_list 列番号で索引付けされたt_column_valuesの表

次の例は、簡単なアイテム・タイプのプラグインのレンダリング・ファンクションを示します。このファンクションは、ページ・アイテムに定義されたLOVを実行し、ページ・アイテムの現在の値を使用して大/小文字が区別されるLIKEフィルタ処理を実行します。また、結果をHTMLリストとして生成します。ここでは、LOV SQL文の最初の列がVARCHAR2型であり、2つ目の列が数値型であることを確認します。

function render_list (
    p_item                in apex_plugin.t_page_item,
    p_value               in varchar2,
    p_is_readonly         in boolean,
    p_is_printer_friendly in boolean )
    return apex_plugin.t_page_item_render_result
is
    l_data_type_list    apex_application_global.vc_arr2;
    l_column_value_list apex_plugin_util.t_column_value_list2;
begin
    -- The first LOV column has to be a string and the second a number
    l_data_type_list(1) := apex_plugin_util.c_data_type_varchar2;
    l_data_type_list(2) := apex_plugin_util.c_data_type_number;
    --
    l_column_value_list :=
        apex_plugin_util.get_data2 (
            p_sql_statement    => p_item.lov_definition,
            p_min_columns      => 2,
            p_max_columns      => 2,
            p_data_type_list   => l_data_type_list,
            p_component_name   => p_item.name,
            p_search_type      => apex_plugin_util.c_search_contains_case,
            p_search_column_name => 'ENAME',
            p_search_string    => p_value );
    --
    sys.htp.p('<ul>');
    for i in 1 .. l_column_value_list.count(1)
    loop
        sys.htp.p(
            '<li>'||
            sys.htf.escape_sc(l_column_value_list(1).value_list(i).varchar2_value)|| -- display column
            '-'||
            sys.htf.escape_sc(l_column_value_list(2).value_list(i).number_value)|| -- return column
            '</li>');
    end loop;
    sys.htp.p('</ul>');
end render_list;