例: マクロでの削除 - Teradata Database - Teradata Vantage NewSQL Engine - 例: DELETE文のマクロ

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

次のマクロでは、SELECT文とDELETE文が単一の複文リクエストとして構成されています。

     CREATE MACRO res_use
           (from_date (DATE,       DEFAULT DATE),
            to_date   (DATE,       DEFAULT DATE),
            from_time (INTEGER,    DEFAULT 0),
            to_time   (INTEGER,    DEFAULT 999999),
            proc      (VARCHAR(4), DEFAULT 'P'),
            secs      (SMALLINT,   DEFAULT 600) )
        AS (SELECT
             the_date (TITLE 'Resource//TheDate'),
             the_time (TITLE 'Utilized//TheTime'),
             proc,
             AVERAGE(hits) (TITLE 'Avg//Hits'),
             MAXIMUM(cpu)  (TITLE 'Max//CPU'),
             AVERAGE(cpu)  (TITLE 'Avg//CPU'),
             MAXIMUM(disk) (TITLE 'Max//Disk'),
             AVERAGE(disk) (TITLE 'Avg//Disk'),
             MAXIMUM(host) (TITLE 'Max//Host'),
             AVERAGE(host) (TITLE 'Avg//Host'),
             MAXIMUM(chan) (TITLE 'Max//Chan'),
             AVERAGE(chan) (TITLE 'Avg//Chan')
             FROM DBC.res_use_view
             GROUP BY the_date, the_time, proc
             WHERE the_date BETWEEN :from_date AND :to_date
             AND   the_time BETWEEN :from_time AND :to_time
             AND   proc CONTAINS :proc
             AND   secs EQ :secs
             ORDER BY proc, the_date, the_time

           ;DELETE FROM res_use_view ALL;);

Teradataセッション モードでは、先行するマクロが実行されるが、明示的なトランザクションの境界内で実行されるのではない場合に、DELETE文に対して高速パス削除処理が使用されます。無条件高速パス削除処理を参照してください。

ANSIセッション モードでは、マクロにCOMMITが組み込まれている場合、またはリクエスト内でCOMMITがリクエスト行の最後にマクロの実行の直後に指定されている場合に、DELETE文に対して高速パス削除処理が使用されます。

例えば、先行するマクロの最終行は次のようにすることができます。

     DELETE FROM res_use_view ALL ;
     COMMIT;) ;

COMMITが、マクロ自体またはマクロを実行するリクエストに指定されていない場合には、DELETE文に対して低速パス処理が使用されます。