VARCHAR CHARACTER SET GRAPHIC, LONG VARCHAR CHARACTER SET GRAPHIC - Teradata Database - Teradata Vantage NewSQL Engine

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/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

Cのデータ型とマクロの定義

typedef struct VARGRAPHIC {
    int      length;       /* length of string */
    GRAPHIC  graphic[1];   /* string - size must be adjusted */
} VARGRAPHIC;

#define VARGRAPHIC_M(len) struct { int length; GRAPHIC graphic[len]; }

使用方法

VARGRAPHIC構造体は、既存のVARCHAR CHARACTER SET GRAPHIC値を参照するために使用します。

VARGRAPHIC_Mマクロは、特定の長さの独自のVARCHAR CHARACTER SET GRAPHIC値を定義するために使用します。例えば、長さ30のVARCHAR CHARACTER SET GRAPHIC値を定義するには、このマクロを次のように使用します。
VARGRAPHIC_M(30) myvgstr;

関数の結果型が可変長グラフィック データの場合、結果引数はCREATE FUNCTION文のRETURNS句で定義されている最大値分のグラフィック フィールドを予約済みのVARGRAPHIC構造体を内容とするデータ域へのポインタです。

UDF定義とC関数宣言の中でVARCHAR(n) CHARACTER SET GRAPHICを使用する例を以下に示します。

SQL関数定義 対応するC関数宣言
CREATE FUNCTION F1 (
  A VARCHAR(30) CHARACTER SET
GRAPHIC )
RETURNS VARCHAR(12) CHARACTER
SET GRAPHIC
...;
void f1( VARGRAPHIC *a,
         VARGRAPHIC *result,
   ... )
{  ... }