ルールと制限を以下に示します。
- SELECTは、選択のDECLARE CURSOR構成の内部から実行する必要があります。
- SELECT文だけのために開いた更新可能カーソルでは、ORDER BY、GROUP BY、HAVING、またはWITH... BY句は使用できません。
- SELECT権限は、FROM句や問合わせの指定に含まれるサブクエリーで指定されたすべてのテーブルに対して必要です。また、そのテーブルを格納するデータベースの集合に対しても必要です。
- 選択リスト内の列の数は、ホスト変数の数と同じでなければなりません。
- Teradata Databaseは値を、ホスト変数が指定された順序で、INTO句で指定されたホスト変数に割り当てます。最後に、システムは値をステータス パラメータSQLSTATEとSQLCODEに割当てます。
- 主要なホスト変数と、返されたデータ セットで対応する列は、同じデータ型グループでなければなりません。ただし、主要なホスト変数が近似のタイプである場合は除きます。この場合、一時テーブルの列のデータ型は近似値か正確な数値のタイプのいずれかにすることができます。
- 一時テーブルが空の場合、Teradata Databaseは次の値をステータス パラメータに割り当てます。
ステータス パラメータ 割当てる値 SQLSTATE ‘02000’ SQLCODE +100 INTO句で指定されたホスト変数に割り当てられる値はありません。
- データの行が正確に1行戻される場合、その行からの値はINTO句で指定される対応するホスト変数に割り当てられます。
- 1行以上のデータが返される場合、システムは次の値をステータス パラメータに割当てます。
ステータス パラメータ 割当てる値 SQLSTATE ‘21000’ SQLCODE -811 INTO句で指定されたホスト変数に割り当てられる値はありません。
- 値をホスト変数に代入しているときにエラーが発生した場合、システムは次の値セットの1つをステータス パラメータに割当てます。
ステータス パラメータ 割当てる値 SQLSTATE ‘22509’ SQLCODE -303 SQLSTATE ‘22003’ SQLCODE -304 SQLSTATE ‘22003’ SQLCODE -413 INTO句で指定されたホスト変数に割り当てられる値はありません。
- 返されるデータの列の値がNULLで、対応する標識ホスト変数が指定された場合、-1という値がその標識変数に割り当てられます。主要なホスト変数に値が割り当てられることはありません。対応する標識ホスト変数が指定されない場合、Teradata Databaseは次の値をステータス パラメータに割り当てます。
ステータス パラメータ 割当てる値 SQLSTATE ‘22002’ SQLCODE -305 INTO句で指定されたホスト変数に割り当てられる値はありません。
- 返されるデータの列の値がNOT NULLで、対応する標識ホスト変数が指定された場合、標識ホスト変数は以下のように設定されます。
- 列と主要なホスト変数がCHARACTERデータ型で、列の値が主要なホスト変数よりも長い場合、標識ホスト変数は列の値の長さに設定されます。
- これ以外の場合はすべて、標識変数はゼロに設定されます。
ステータス パラメータには、以下のデフォルト値があります。ステータス パラメータ 割当てる値 SQLSTATE ‘00000’ SQLCODE 0 - 列値は、ホスト変数の場合のルールに従って、対応する主なホスト変数に設定されます。
- SELECT ... INTOは、動的リクエストとしては実行できません。