29.11 GET_DATAファンクションのシグネチャ1

提供された検索文字列で制限される指定済のSQL問合せを実行し(オプション)、各列の値を戻します。すべての列値は、データ型に関係なく文字列として戻されます。検索列は、p_search_column_noパラメータに列番号を指定することによって識別されます。このファンクションでは、アプリケーションに定義されている「文字の値の比較」グローバリゼーション属性が考慮されます。

構文

APEX_PLUGIN_UTIL.GET_DATA (
    p_sql_statement    IN VARCHAR2,
    p_min_columns      IN NUMBER,
    p_max_columns      IN NUMBER,
    p_component_name   IN VARCHAR2,
    p_search_type      IN VARCHAR2 DEFAULT 2,
    p_search_column_no IN VARCHAR2 DEFAULT 2,
    p_search_string    IN VARCHAR2 DEFAULT NULL,
    p_first_row        IN NUMBER DEFAULT NULL,
    p_max_rows         IN NUMBER DEFAULT NULL)
RETURN t_column_value_list;

パラメータ

表29-10 GET_DATAファンクションのシグネチャ1のパラメータ

パラメータ 説明

p_sql_statement

参照に使用されるSQL文。

p_min_columns

戻り列の最小数。

p_max_columns

戻り列の最大数。

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_no

SQL文を制限するために使用する列の数。p_min_columnsからp_max_columnsの範囲内である必要があります。

p_search_string

問合せを制限するために使用する値。

p_first_row

指定した行から問合せを開始します。指定した行より前の行はすべてスキップされます。

p_max_rows

可能な戻り行の最大数。

戻り値

表29-11 GET_DATAファンクションのシグネチャ1の戻り値

戻り値 説明

t_column_value_list

列番号で索引付けされたapex_application_global.vc_arr2の表。

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


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_column_value_list   apex_plugin_util.t_column_value_list;
begin
    l_column_value_list :=
        apex_plugin_util.get_data (
            p_sql_statement    => p_item.lov_definition,
            p_min_columns      => 2,
            p_max_columns      => 2,
            p_component_name   => p_item.name,
            p_search_type      => apex_plugin_util.c_search_contains_case,
            p_search_column_no => 1,
            p_search_string    => p_value );
 
    sys.htp.p('<ul>');
    for i in 1 .. l_column_value_list(1).count
    loop
        sys.htp.p(
            '<li>'||
            sys.htf.escape_sc(l_column_value_list(1)(i))|| -- display column
            '-'||
            sys.htf.escape_sc(l_column_value_list(2)(i))|| -- return column
            '</li>');
    end loop;
    sys.htp.p('</ul>');
end render_list;