27.7 ADD_FILTERプロシージャ

このプロシージャは、フィルタ・コレクションにフィルタを追加します。

構文

シグネチャ1

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name );

シグネチャ2

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_value             IN            apex_t_varchar2,
    p_null_result       IN            BOOLEAN  DEFAULT FALSE,
    p_is_case_sensitive IN            BOOLEAN  DEFAULT TRUE,
    p_data_type         IN            t_data_type DEFAULT c_data_type_varchar2 );

シグネチャ3

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_from_value        IN            VARCHAR2,
    p_to_value          IN            VARCHAR2,
    p_null_result       IN            BOOLEAN DEFAULT FALSE,
    p_is_case_sensitive IN            BOOLEAN DEFAULT TRUE );

シグネチャ4

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_values            IN            apex_t_varchar2,
    p_null_result       IN            BOOLEAN          DEFAULT FALSE,
    p_is_case_sensitive IN            BOOLEAN          DEFAULT TRUE );

シグネチャ5

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_value             IN            number,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ6

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_from_value        IN            NUMBER,
    p_to_value          IN            NUMBER,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ7

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_values            IN            apex_t_number,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ8

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_value             IN            DATE,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ9

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_from_value        IN            DATE,
    p_to_value          IN            DATE,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ10

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_value             IN            TIMESTAMP,
    p_null_result       in            BOOLEAN DEFAULT FALSE );

シグネチャ11

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_from_value        IN            TIMESTAMP,
    p_to_value          IN            TIMESTAMP,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ12

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_value             IN            TIMESTAMP WITH TIME ZONE,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ13

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_from_value        IN            TIMESTAMP WITH TIME ZONE,
    p_to_value          IN            TIMESTAMP WITH TIME ZONE,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ14

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_value             IN            TIMESTAMP WITH LOCAL TIME ZONE,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ15

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_from_value        IN            TIMESTAMP WITH LOCAL TIME ZONE,
    p_to_value          IN            TIMESTAMP WITH LOCAL TIME ZONE,
    p_null_result       IN            BOOLEAN DEFAULT FALSE );

シグネチャ16

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            t_column_name,
    p_interval          IN            PLS_INTEGER,
    p_interval_type     IN            t_filter_interval_type,
    p_null_result       IN            BOOLEAN     DEFAULT FALSE,
    p_data_type         IN            t_data_type DEFAULT c_data_type_date );

シグネチャ17

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_search_columns    IN            t_columns,
    p_is_case_sensitive IN            BOOLEAN           DEFAULT FALSE,
    p_value             IN            VARCHAR2,
    p_tokenize          IN            BOOLEAN           DEFAULT NULL );

シグネチャ18

PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_sql_expression    IN            VARCHAR2 );

シグネチャ19

ノート:

このシグネチャは、SDO_GEOMETRY (Oracle Locator)がデータベースにインストールされている場合にのみ使用できます。
PROCEDURE ADD_FILTER (
    p_filters           IN OUT NOCOPY t_filters,
    p_filter_type       IN            t_filter_type,
    p_column_name       IN            VARCHAR2,
    p_value             IN            mdsys.sdo_geometry );

シグネチャ20

PROCEDURE ADD_FILTER (
    p_filters             IN OUT NOCOPY t_filters,
    p_search_index_owner  IN            VARCHAR2,
    p_search_index_table  IN            VARCHAR2,
    p_text_column_name    IN            VARCHAR2,
    p_text_query_function IN            VARCHAR2,
    p_value               IN            VARCHAR2 );

シグネチャ21

ノート:

Oracle TEXTの場合にこのシグネチャを使用します。
PROCEDURE ADD_FILTER (
    p_filters             IN OUT NOCOPY t_filters,
    p_text_column_name    IN            VARCHAR2,
    p_text_query_function IN            VARCHAR2,
    p_value               IN            VARCHAR2 );

シグネチャ22

ノート:

データベース23aiおよび特定のadd_columnプロシージャが必要です:

apex_exec.add_vector_distance_column(                
    p_columns         => l_columns );
PROCEDURE ADD_FILTER (
    p_filters             IN OUT NOCOPY t_filters,
    p_vector_column_name  IN            VARCHAR2,
    --
    p_vector_search_type  IN            t_vector_search_type    DEFAULT c_vector_search_exact,
    p_distance_metric     IN            t_vector_distance_type  DEFAULT c_vector_distance_euclidean,
    --
    -- only for p_vector_search_type = c_vector_search_approx
    p_target_accuracy     IN            NUMBER                  DEFAULT NULL,
    --
    p_max_results         IN            NUMBER,
    p_max_dist            IN            NUMBER                  DEFAULT NULL,
    p_search_vector       IN            VECTOR );

パラメータ

パラメータ 説明
p_filters フィルタ配列。
p_filter_type フィルタのタイプ - t_filter_type定数のいずれかを使用します。
p_column_name このフィルタを適用する列。
p_value 1つの値を必要とするフィルタ(たとえば、等しいや次より大きい)の値。
p_values INフィルタまたはNOT INフィルタの値の配列。
p_from_value 範囲を必要とするフィルタ(たとえば、次の範囲内)の下限値。
p_to_value 範囲を必要とするフィルタ(たとえば、次の範囲内)の上限値。
p_interval 日付フィルタの間隔(たとえば、過去X月)。
p_interval_type 日付フィルタの間隔タイプ(月や日)。
p_sql_expression フィルタとして使用する汎用SQL式。
p_null_result 実際の列値がNULLのときに返される結果。
p_is_case_sensitive このフィルタが大/小文字を区別するかどうか。
p_search_columns 行検索フィルタを適用する列のリスト。
p_text_column_name Oracle TEXTまたはユビキタス・データベース検索を使用する場合の、式を含むSQLの列名。
p_text_query_function Oracle TEXTまたはユビキタス・データベース検索を使用する場合の、式を含むSQLで使用するファンクション。
p_search_index_owner ユビキタス・データベース検索の場合に、ユビキタス検索の索引ソース所有者についてフィルタを適用します。
p_search_index_table ユビキタス・データベース検索の場合に、ユビキタス検索の索引ソース名についてフィルタを適用します。
p_vector_column_name このフィルタを適用するベクトル列。
p_vector_search_type 検索タイプ。t_vector_search_type定数のいずれかを使用します。
p_distance_metric 距離メトリック。t_vector_distance_type定数のいずれかを使用します。
p_target_accuracy 目標の正確性。p_vector_search_type = c_vector_search_approxの場合にのみ使用されます。
p_max_results フェッチする行の数。
p_max_dist 検索結果の最大ベクトル距離。
p_search_vector ベクトル検索のベクトル値。
p_data_type このフィルタを適用する列のデータ型。
p_tokenize 行検索語を個々の単語にトークン化するかどうか。

DECLARE
    l_filters     apex_exec.t_filters;
    l_context     apex_exec.t_context;
BEGIN
    apex_exec.add_filter(
        p_filters     => l_filters,
        p_filter_type => apex_exec.c_filter_eq,
        p_column_name => 'ENAME',
        p_value       => 'KING' );

   apex_exec.add_filter(
       p_filters     => l_filters,
       p_filter_type => apex_exec.c_filter_gt,
       p_column_name => 'SAL',
       p_value       => 2000 );

   l_context := apex_exec.open_web_source_query(
       p_module_static_id => '{web source module static ID}', 
       p_filters          => l_filters
       p_max_rows         => 1000 );

       while apex_exec.next_row( l_context ) loop
           -- process rows here ...
       END loop;

  apex_exec.close( l_context );
EXCEPTION
     WHEN others THEN
        apex_exec.close( l_context );
        raise;    
END;