例: 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