SELECT AND CONSUME ... INTO - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL

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

指定されたキュー テーブル内の最も古い挿入タイムスタンプを持つ行のデータを選択し、 その行をキュー テーブルから削除して、その行の値を埋め込みSQLアプリケーションのホスト変数として、またはストアド プロシージャのローカル変数やパラメータとして割り当てます。

ANSI準拠

SELECT AND CONSUME ... INTOは、ANSI/ISO SQL:2011規格に対するTeradataの拡張機能です。

必要な権限

キュー テーブルからSELECT AND CONSUME ... INTOを実行するには、そのテーブルに対するSELECT権限およびDELETE権限が必要です。

呼び出し

実行可能形式。

ストアド プロシージャおよび埋め込みSQL。

ストアド プロシージャ構文

{ SELECT | SET } AND CONSUME TOP 1 select_list
   INTO into_spec [,...] FROM queue_table_name
into_spec
[:] { local_variable_name | parameter_name }

埋め込みSQL構文

{ SELECT | SET } AND CONSUME TOP 1 select_list
   INTO into_spec [,...] FROM queue_table_name
into_spec
[:] host_variable_name [ [INDICATOR] :host_indicator_name ]

構文要素

select_list
ASTERISK文字(*)、またはカンマで区切った複数の有効なSQL式からなるリスト。
select_listに*を指定した場合、FROM句で指定されたキュー テーブルに含まれるすべての列が返されます。
select_listに集約関数や順序分析関数を含めることはできません。
local_variable_name
選択したデータを配置するストアド プロシージャで宣言されるホスト変数の名前。
ここでは、ストアド プロシージャのステータス変数を使用することはできません。
queue_table_name
CREATE TABLE文にQUEUEオプションを指定して作成されたキュー テーブルの名前。
parameter_name
選択したデータを配置するストアド プロシージャのパラメータの名前。
指定できるのは、出力パラメータ(INOUTおよびOUTタイプ)だけです。
host_variable_name
選択したデータを配置するホスト変数の名前。
host_indicator_name
ホスト標識変数の名前。

使用上の注意

  • キュー テーブルの属性

    キュー テーブルは、通常の実テーブルによく似ていますが、非同期先入れ先出し(FIFO)キューのような動作をする点が異なります。

    キュー テーブルの最初の列には、キュー挿入タイムスタンプ(QITS)値が含まれます。CREATE TABLE文では、以下のデータ型と属性を使って最初の列を定義する必要があります。

    TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)

    行のQITS値は、その行がキュー テーブルに挿入された時間を示します(ユーザー提供によって別の値が挿入されない限り)。

  • 埋め込みSQLでのコロン文字の使用

    埋め込みSQLでは、コロン文字の前後にブランクを入れるかどうかはオプションです。host_variable_nameの前には、オプションでコロン文字を使用できます。コロン文字は、host_indicator_nameの前で使用しなければなりません。

  • 埋め込みSQLのルール

    SELECT AND CONSUME ... INTOには、SELECT ... INTOと同じルールが適用されます。

関連情報

  • queue_table_nameについては、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>のCREATE TABLE(キュー テーブル形式)に関する情報を参照してください。
  • 使用上の注意、トランザクション処理、ロック、および制限については、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>のSELECT AND CONSUMEに関する情報を参照してください。
  • SELECT ... INTOおよびSELECT AND CONSUME ... INTOに適用するルールについては、SELECT ... INTOの埋め込みSQLのルールを参照してください。