SQL定義 - 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

color_t DISTINCT型UDTと、circle_t STRUCTURED型UDTのSQL定義を以下に示します。

CREATE TYPE color_t
   AS VARCHAR(30)
   FINAL;

CREATE TYPE circle_t
   AS (x INTEGER, y INTEGER, radius INTEGER, color color_t)
   NOT FINAL;

次のCREATE FUNCTION文は、関数をインストールします。

CREATE FUNCTION circle_t_ToSql( p1 VARCHAR(80) )
   RETURNS circle_t
   NO SQL
   PARAMETER STYLE TD_GENERAL
   DETERMINISTIC
   LANGUAGE C
   EXTERNAL NAME 'CS!c_tosql!udfsrc/c_tosql.c!F!circle_t_ToSql';

CREATE FUNCTION circle_t_FromSql( p1 circle_t )
   RETURNS VARCHAR(80)
   NO SQL
   PARAMETER STYLE TD_GENERAL
   DETERMINISTIC
   LANGUAGE C
   EXTERNAL NAME 'CS!c_fromsql!udfsrc/c_fromsql.c!F!circle_t_FromSql';

CREATE FUNCTION circle_t_Ordering( p1 circle_t )
   RETURNS FLOAT
   SPECIFIC circle_t_Ordering
   NO SQL
   PARAMETER STYLE SQL
   DETERMINISTIC
   LANGUAGE C
   EXTERNAL NAME 'CS!c_order!udfsrc/c_order.c!F!circle_t_Ordering';

以下の文は、circle_t_ToSql関数とcircle_t_FromSql関数を、circle_t UDT用の変換ルーチンとして登録します。

CREATE TRANSFORM FOR circle_t
   circle_t_IO (TO SQL WITH SPECIFIC FUNCTION circle_t_ToSql,
      FROM SQL WITH SPECIFIC FUNCTION circle_t_FromSql);

以下の文は、circle_t_Ordering関数を、circle_t UDT用の整列ルーチンとして登録します。

CREATE ORDERING FOR circle_t
   ORDER FULL BY MAP WITH SPECIFIC FUNCTION circle_t_Ordering;