文字データおよびバイト データを圧縮するUDFの記述ルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/rin1593638965306.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage
  • スカラーUDFは、列のデータ型と互換性のあるデータ型を持っている単一のBYTE(n)、VARBYTE(n)、CHAR(n)、またはVARCHAR(n)入力パラメータを宣言する必要があります。結果パラメータ型は、VARBYTE(n)にする必要があります。互換性のあるデータ型の詳細については、互換データ型を参照してください。

    列の長さは入力パラメータの長さより短いか等しくする必要があります。

    CHARおよびVARCHARの列の場合、パラメータ宣言でCHARACTER SET句を使用してサーバー文字セットを指定する必要があります。このサーバー文字セットは、列のサーバー文字セットと一致させます。

    推奨事項:入力パラメータは、VARBYTE(n)またはVARCHAR(n)のデータ型で宣言してください。このように宣言すると、多くの場合に最適になります。

  • 入力が圧縮できないときには、VARBYTE引数のlengthフィールドに0未満の値を設定して、UDFは列データを圧縮できないことを示します。
  • 列のデータ型がVARCHARまたはCHARであり、UDFの入力パラメータをCHARまたはVARCHARとして宣言する場合、そのUDFではFNC_GetCharLengthを呼び出して入力文字列の実際の長さを取得する必要があります。

    UDF入力パラメータがCHARの場合、Vantageは適切な数の埋め込み文字を追加するか、適切な数の埋め込み文字を取り除くことで、入力文字列の文字数を列定義と同じ文字数に揃えます。

    UDF入力パラメータがVARCHARであり、圧縮する列がCHAR列の場合は、Vantageは埋め込み文字をすべて取り除きます。

  • VARCHAR列またはVARBYTE列の場合、Vantageは列定義で指定された長さで入力パラメータが定義されているものとしてUDFを呼び出します。

    次のテーブル定義があるとします。

    CREATE TABLE Descriptions
       (d_ID INTEGER
       ,d_Data VARCHAR(2400) COMPRESS USING Compress_Data
                             DECOMPRESS USING Decompress_Data
       );

    VARCHAR(64000)の入力パラメータを宣言するC関数を作成した場合、Vantageは、関数がVARCHAR(2400)の入力パラメータで宣言されたものとして、その関数を呼び出します。

    calls the function as if the function declared a VARCHAR(2400) input parameter.】