17.00 - 17.05 - VARCHAR CHARACTER SET GRAPHIC, LONG VARCHAR CHARACTER SET GRAPHIC - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

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,
   ... )
{  ... }