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

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/xqq1557098602407.ditamap
dita:ditavalPath
ja-JP/xqq1557098602407.ditaval
dita:id
B035-1148
Product Category
Software
Teradata Vantage

目的

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

呼び出し

実行可能形式。

ストアド プロシージャおよび埋め込み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
ホスト標識変数の名前。

ANSI準拠

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

許可

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

キュー テーブルの属性

キュー テーブルは、通常の実テーブルによく似ていますが、非同期先入れ先出し(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に適用するルールについては、埋め込みSQLのルールを参照してください。