次の各例で示す関数は、「例: LOB関連データをアルゴリズム圧縮する関数の作成」の例でアルゴリズム圧縮してあるLOBベースのデータを圧縮解除することを目的としています。
外部関数のC、C++、またはJavaコードを記述する方法については、<Teradata Vantage™ - SQL外部ルーチン プログラミング、B035-1147>を参照してください。これらの関数定義は、LOB関連のデータを圧縮解除するために参照します。
この例では、clob_decompressという名前のUDFを作成します。このUDFは、例: LOB関連データをアルゴリズム圧縮する関数の作成の関数clob_compressを使用してアルゴリズム圧縮したCLOB列を圧縮解除するものです。
CREATE FUNCTION clob_decompress (a BLOB AS LOCATOR) RETURNS CLOB AS LOCATOR SPECIFIC clob_decompress LANGUAGE C NO SQL FOR DECOMPRESS PARAMETER STYLE TD_GENERAL RETURNS NULL ON NULL INPUT DETERMINISTIC EXTERNAL NAME 'cs!clobdecompress!clobdecompress.c';
この例では、d_clob_decompressという名前のUDFを作成します。このUDFは、例: LOB関連データをアルゴリズム圧縮する関数の作成の関数d_clob_compressを使用してアルゴリズム圧縮したLOBベースのDISTINCT型UDT列を圧縮解除するものです。
CREATE FUNCTION d_clob_decompress (a BLOB AS LOCATOR) RETURNS DCLOB SPECIFIC d_clob_decompress LANGUAGE C NO SQL FOR DECOMPRESS PARAMETER STYLE TD_GENERAL RETURNS NULL ON NULL INPUT DETERMINISTIC EXTERNAL NAME 'cs!dclobdecompress!dclobdecompress.c';
この例では、s_clob_decompressという名前のUDFを作成します。このUDFは、例: LOB関連データをアルゴリズム圧縮する関数の作成の関数s_clob_compressを使用してアルゴリズム圧縮したLOBベースのDISTINCT型UDT列を圧縮解除するものです。
CREATE FUNCTION s_clob_decompress (a BLOB AS LOCATOR) RETURNS SCLOB SPECIFIC s_clob_decompress LANGUAGE C NO SQL FOR DECOMPRESS PARAMETER STYLE TD_GENERAL RETURNS NULL ON NULL INPUT DETERMINISTIC EXTERNAL NAME 'cs!sclobdecompress!sclobdecompress.c';