指定されたキュー テーブル内の最も古い挿入タイムスタンプを持つ行のデータを選択し、 その行をキュー テーブルから削除して、その行の値を埋め込み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式からなるリスト。
- local_variable_name
- 選択したデータを配置するストアド プロシージャで宣言されるホスト変数の名前。
- queue_table_name
- CREATE TABLE文にQUEUEオプションを指定して作成されたキュー テーブルの名前。
- parameter_name
- 選択したデータを配置するストアド プロシージャのパラメータの名前。
- 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のルールを参照してください。