RETURNS TABLE - Teradata Database - Teradata Vantage NewSQL Engine - RETURNS TABLEオプション、CREATE FUNCTION(テーブル形式)SQL文。

Teradata Vantage™ SQLデータ定義言語 構文規則および例

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

関数は、標準リレーショナル テーブルの行セットを返します。

column_name
関数によって返される行セット内の列の名前。どのテーブル関数定義でも、少なくとも1つの列とそのデータ型を定義する必要があります。
データベース オブジェクトの命名ルールについては、<SQL基礎>を参照してください。
1つのテーブル関数に最大で2,048個の列を指定できます。
指定した列の1つがLOBデータ型の場合、他に少なくとも1つの非LOB列を定義する必要があります。
列名の完全セットとそれに伴うデータ型は、関数が呼び出されたときに呼び出し側に戻すテーブルの構造を定義します。
data type
指定する各列名のデータ型。データ型のリストについては、データ型構文を参照してください。
データ型がCHARACTERファミリーのいずれかの場合は、CHARACTER SET属性も指定できます。
RETURNS句のデータ型としてTD_ANYTYPEを指定することはできません。
文字サーバー データ セットとしてKANJI1を指定することはできません。指定した場合、Teradata Databaseは要求元にエラーを返します。
返される列のデータ型がBLOBまたはCLOBのいずれかの場合は、AS LOCATOR句で指定することはできません。そのように指定すると、要求元にエラーが返されます。
これは、AS LOCATOR句で指定しなければならないLOBパラメータのデータ型の指定とは正反対です。
列に対してそのデータ型以外の属性を指定したり、文字データ型に対してCHARACTER SET句を指定することはできません。

例: パラメータおよびRETURNS TABLE句に対するさまざまなLOB指定

以下の例では、関数パラメータおよびテーブル列に対して、LOBデータ型の指定方法がそれぞれ異なることが示されています。AS LOCATOR句の指定に必要なパラメータ タイプ指定の方法や、テーブル列指定がAS LOCATOR句の使用を禁止している点に注目してください。

     CREATE FUNCTION lobtf_concat3 (
      NumRows INTEGER,
     A       BLOB AS LOCATOR,
     B       VARBYTE(64000),
     C       BLOB AS LOCATOR)
     RETURNS TABLE (ampnum   INTEGER,
     a_out    BLOB(10),
     b_out    VARBYTE(10),
     c_out    BLOB(10),
     myresult BLOB(30))
     LANGUAGE C
     NO SQL
     PARAMETER STYLE SQL
       EXTERNAL NAME 'SS!lobtf_concat3!/home/i18n/hsf/tf/c/
                       lobtf_concat3.c';