# Oracle - New row (新規行) トリガー
# New row
このトリガーは、選択したテーブルまたはビューに挿入される行を取得します。各行は別個のジョブとして処理されます。ポーリング間隔ごとに一度、新規行をチェックします。
入力項目 | 説明 |
---|---|
Table | 最初に、行を処理するテーブル/ビューを選択します。 |
Unique key | 次に、行を一意に識別する一意のキー列を選択します。この列のリストは、選択したテーブル/ビューから生成されます。 |
WHERE condition |
最後に、行をフィルタリングするためのオプションの WHERE 条件を入力します。
|
# New batch of rows (新規行のバッチ)
このトリガーは、選択したテーブルまたはビューに挿入される行を取得します。これらの行は、ジョブごとに行のバッチとして処理されます。このバッチサイズは、トリガーの入力で設定できます。ポーリング間隔ごとに一度、新規行をチェックします。
入力項目 | 説明 |
---|---|
Table | 最初に、行を処理するテーブル/ビューを選択します。 |
Unique key | 次に、行を一意に識別する一意のキー列を選択します。この列のリストは、選択したテーブル/ビューから生成されます。 |
Batch size | 次に、このレシピの各ジョブで処理するバッチサイズを設定します。 |
WHERE condition |
最後に、行をフィルタリングするためのオプションの WHERE 条件を入力します。
|
# 入力項目
# Table
行を処理するテーブル/ビューを選択します。このためには、ピックリストからテーブルを選択するか、または入力項目をテキストモードに切り替えて完全なテーブル名を入力します。
# Unique key
選択したこの列の値は、選択したテーブル内で行の重複を削除するために使用され、同じレシピ内で同じ行が2回処理されることがないようにします。
そのため、選択した列内の値はテーブル内で繰り返されません。通常、この列はテーブルのプライマリキー (ID
など) になります。この列は増分列で、並べ替え可能です。また、パフォーマンス向上のためにインデックスを付けることもできます。
PRIMARY KEY ('P') または UNIQUE ('U') 制約を持つ列のみを使用できます。この SQL クエリーを実行して、この要件を満たす列を見つけます。
SELECT c.column_name
FROM all_indexes i, all_ind_columns c
WHERE
i.table_owner = 'TABLE_OWNER' AND
i.table_name = 'TABLE_NAME' AND
i.uniqueness = 'UNIQUE' AND
i.table_name = c.table_name AND
i.index_name = c.index_name
UNION
SELECT cc.column_name
FROM all_constraints con, all_cons_columns cc
WHERE
con.table_owner = 'TABLE_OWNER' AND
con.table_name = 'TABLE_NAME' AND
con.constraint_type in ('U', 'P') AND
con.table_name = cc.table_name AND
con.constraint_name = cc.constraint_name
# Batch size
各ジョブで返される行のバッチサイズ。これには、 1 ~最大バッチサイズ間の任意の数を指定できます。最大バッチサイズは 100 で、デフォルトは 100 です。
指定されたポーリングにおいて、行数が設定されたバッチサイズよりも少ない場合、このトリガーはすべての行をサイズの小さなバッチとして処理します。
# WHERE condition
この条件は、1つ以上の列の値に基づいて行をフィルタリングするために使用されます。
status = 'closed' and priority > 3
選択したテーブルのすべての行を処理するには、空白のままにしてください。
サブクエリーを含む複雑な WHERE
条件を使用することもできます。詳細については、WHERE 条件に関するガイドを参照してください。
Last updated: 2023/8/31 1:07:14