16.20 - DESCRIBE - Teradata Vantage NewSQL Engine

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

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1148-162K-JPN

目的

前に準備されている動的SQL文が実行されるときに返されるデータに関する情報を取得します。

呼び出し

実行可能形式。

動的SQL。

埋め込みSQLのみ。

構文



statement_name
前準備された文に関連付けた名前。有効なSQL識別子。単一引用符で囲みません。
descriptor_area
前に準備されている文が実行されるときに返されるデータに関する情報を受け取る領域。
SQLDAを識別しなければなりません。
Cプログラム内でdescriptor_areaを名前として指定するか、SQLDAがポインタとして宣言されているときは、ポインタ参照(*sqldaname)として指定します。
statement_number
情報を求めるリクエスト内の文番号。
有効な整数値リテラルでなければなりません。
statement_number_variable
情報を求めるリクエスト内の文番号。
INTEGERまたはSMALLINT型のホスト変数を識別する必要があります。

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に返され、情報は返されません。

関連トピック

詳細は、以下の文を参照してください。