例: トリガーからの動的UDTの入力 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/spp1591731285373.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

次の例は、WHEN句でNEW VARIANT_TYPEコンストラクタ式を指定するAFTER INSERT行トリガーを作成します。

最初にトリガーを作成します。

     CREATE TRIGGER Dyn_TestTrigger02
       AFTER INSERT ON Source_DynTriggerTest2
       REFERENCING NEW AS NewRow
     FOR EACH ROW
       WHEN (scalar001dynRtnint_1p(NEW VARIANT_TYPE(NewRow.a AS a,
                                                    NewRow.b AS b))<8)
         INSERT INTO Target_DynTriggerTest2
         VALUES(1,NewRow.a,NewRow.b);

Target_DynTriggerTest2には行がないと仮定します。ここで、Source_DynTriggerTest2に行を挿入します。これは、スカラーUDFscalar001dynRtnint_1pの評価が指定されたWHEN句の条件を満たすときに、新しく作成したトリガーDyn_TestTrigger02を呼び出してTarget_DynTriggerTest2に行を挿入します。

     INSERT INTO Source_DynTriggerTest2 
     VALUES (3,3,3);

Target_DynTriggerTest2:から、すべての列を選択します。

     SELECT * 
     FROM Target_DynTriggerTest2;
      *** Query completed. One row found. 3 columns returned.
      *** Total elapsed time was 1 second.
        Integer1      NewColA      NewColB
     -----------  -----------  -----------
               1            3            3

予想どおり、トリガーDynTestTrigger02を定義すると、Target_DynTriggerTest2に新しく挿入された行には、その3つの列に対して1、3、3の値がそれぞれ含まれます。