目的
前に準備されている動的SQL文が実行されるときに返されるデータに関する情報を取得します。
呼び出し
実行可能形式。
動的SQL。
埋め込みSQLのみ。
構文
- statement_name
- 前準備された文に関連付けた名前。有効なSQL識別子。単一引用符で囲みません。
- descriptor_area
- 前に準備されている文が実行されるときに返されるデータに関する情報を受け取る領域。
- statement_number
- 情報を求めるリクエスト内の文番号。
- statement_number_variable
- 情報を求めるリクエスト内の文番号。
ANSI準拠
DESCRIBEは、ANSI/ISO SQL:2011規格に対するTeradataの拡張機能です。
DESCRIBEは、ANSI/ISO SQL:2011の文のDESCRIBE INPUTおよびDESCRIBE OUTPUTと同様に機能します。
許可
なし。
一般ルール
- SQLDAが定義されている必要があります。
- statement_nameで指定される文が、同じトランザクション内で準備されていなければなりません。
- 準備された文がデータを返さない文である場合、準備された文がデータを返さない文であるという確認以外には、有用な情報は得られません。
- DESCRIBEそのものを動的SQL文として実行することはできません。
USING句のルール
指定するUSINGの形式 | 列 |
---|---|
NAMES | SQLDAのSQLNAMEフィールドにタイトルが置かれます。 USING句が指定されていない場合もそのようになります。 |
LABELS | SQLDAのSQLNAMEフィールドにタイトルが置かれます。 選択リストで列に対してTITLE句が指定される場合、そのタイトルが返されます。 CREATE TABLE時にTITLEを付けて列が定義され、SELECT文でタイトルが指定されない場合には、CREATE TABLE文に指定したタイトルが返されます。 どちらもない場合は、デフォルトのタイトル(列名)が返されます。 |
BOTH | SQLDAのSQLNAMEフィールドに名前とタイトルが置かれます。 この場合、以下のように、SQLVAR配列には列ごとに2つの要素(2 * n個の要素)が必要です。 要素の最初のセットには名前および列情報が含まれます。 2番目のセットには列のタイトルが含まれます。 |
ANY | SQLDAのSQLNAMEフィールドにタイトルまたは名前が置かれます。 列にタイトルがある場合、そのタイトルがSQLNAMEフィールドに置かれます。 列にタイトルがない場合、列名がSQLNAMEフィールドに置かれます。 |
FOR STATEMENT句のルール
- FOR STATEMENT句は動的な複文リクエストをサポートするためのものですが、単一文リクエストに使用することもできます。
- FOR STATEMENT句を指定しない場合、準備された動的SQLリクエストの最初の(または唯一の)SQL文についての記述情報が返されます。
- FOR STATEMENT句を指定する場合、準備された動的SQLリクエスト(句の整数値オペランドによって識別される)のSQL文の記述情報が返されます。
そのような文がない場合(例えば、FOR STATEMENT 3がコード化され、リクエストに文が2つだけしかない場合)、-504という値がSQLCODEに返され、情報は返されません。
関連トピック
詳細は、以下の文を参照してください。
- descriptor_areaについては、<Teradata® Preprocessor2埋め込みSQLプログラマ ガイド、B035-2446>を参照してください。
- EXECUTE (動的SQL形式)
- EXECUTE IMMEDIATE
- PREPARE