UDTデータ型の例 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データ タイプおよびリテラル

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/zsn1556242031050.ditamap
dita:ditavalPath
ja-JP/zsn1556242031050.ditaval
dita:id
B035-1143
Product Category
Software
Teradata Vantage

例: UDTデータ型

以下の文は、euro という名前のDISTINCT型UDTを作成します。

CREATE TYPE euro
AS DECIMAL(8,2)
FINAL;

以下の文は、salesという名前のeuro列を定義するテーブルを作成します。

CREATE TABLE european_sales
  (region INTEGER
  ,sales euro);

例: Java UDFのDISTINCT型UDTパラメータ

CREATE TYPE MONEY AS numeric(10,2) FINAL

REPLACE FUNCTION MyMoney (A1 MONEY)
RETURNS MONEY
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA 
EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mymoney';

public static java.math.BigDecimal mymoney(java.math.BigDecimal a)
                                              throws SQLException

また、次のような関数を定義することができます。

REPLACE FUNCTION MyMoney (A1 MONEY)
RETURNS MONEY
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA 
EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mymoney(java.math.BigDecimal) returns java.math.BigDecimal';
	
public static java.math.BigDecimal mymoney(java.math.BigDecimal a) 
                                              throws SQLException

例: Java UDFのSTRUCTURED型UDTパラメータ

CREATE TYPE CIRCLE AS (x double, y double, r double)…

REPLACE FUNCTION MyCircle(A1 CIRCLE)
RETURNS INTEGER
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA 
EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mycircle';

public static int mycircle(java.sql.Struct s) throws SQLException

また、次のような関数を定義することができます。

REPLACE FUNCTION MyCircle(A1 CIRCLE)
RETURNS INTEGER
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA 
EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mycircle(java.sql.Struct) returns int';
	
public static int mycircle(java.sql.Struct s) throws SQLException

例: Java外部ストアド プロシージャのDISTINCT型UDTパラメータ

CREATE TYPE MONEY AS numeric(10,2) FINAL

REPLACE PROCEDURE MyMoney(IN A1 MONEY, OUT A2 MONEY)
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA 
EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mymoney';

public static void MyMoney(java.lang.BigDecimal A1, java.lang.BigDecimal[] A2) throws SQLException

例: Java外部ストアド プロシージャのSTRUCTURED型UDTパラメータ

CREATE TYPE CIRCLE AS (x double, y double, r double)

REPLACE PROCEDURE MyCircle(IN A1 CIRCLE, OUT A2 INTEGER)
LANGUAGE JAVA
NO SQL
PARAMETER STYLE JAVA 
EXTERNAL NAME 'UDF_JAR:UserDefinedFunctions.mycircle';

public static void(java.sql.Struct A1, int[] A2) throws SQLException