次の一連の例で、CREATE PROCEDUREリクエストおよびそれに関連するさまざまなパラメータ データ型用の関連Java外部プロシージャ コードを示します。
次は、BYTEINTパラメータ データ型の例です。
CREATE PROCEDURE mybyteint (IN b BYTEINT OUT c BYTEINT) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'User_jar:UnitTest.mybyteint'; public static void mybyteint( byte a, byte[] Result) throws SQLException
次は、SMALLINTパラメータ データ型の例です。
CREATE PROCEDURE mysmallint (IN b smallint, INOUT c smallint ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'newint_jar:newint.mysmallint'; public static void mysmallint( short a, short[] Result ) throws SQLException
次は、INTEGERパラメータ データ型の例です。
CREATE PROCEDURE myint (IN b INTEGER, OUT c INTEGER ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.myint'; public static void myint(int i, int[] retval) throws SQLException
次は、DECIMALまたはNUMERICパラメータ データ型の例です。
CREATE PROCEDURE mydecs (IN c DECIMAL(8,2), OUT d DECIMAL(8,2)) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.mydec'; public static void mydecs(BigDecimal c, BigDecimal[] d) throws SQLException
次は、FLOATまたはREALパラメータ データ型の例です。
CREATE PROCEDURE myfloat (IN i FLOAT, OUT j FLOAT ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.myfloat'; public static void myfloat( Double c, Double[] Result) throws SQLException
次は、DATEパラメータ データ型の例です。
CREATE PROCEDURE mydatediagret (IN d DATE, OUT o DATE ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.mydatediagret'; public static void mydatediagret( java.sql.Date date, java.sql.Date[] Result) throws SQLException
次は、TIME WITH TIME ZONEパラメータ データ型の例です。
CREATE PROCEDURE mytimezdiagret (IN t TIME WITH TIME ZONE, OUT d TIME WITH TIME ZONE ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.mytimezdiagret'; public static void mytimezdiagret( java.sql.Time time, java.sql.Time[] Result) throws SQLException
Java仮想マシンの実装では、うるう秒がサポートされていないため、SECONDフィールドの最大値は61.999999ではなく、59.999999です。
次は、TIMESTAMP WITH TIME ZONEパラメータ データ型の例です。
CREATE PROCEDURE mytszdiagret (IN t TIMESTAMP WITH TIME ZONE, OUT d TIMESTAMP WITH TIME ZONE ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.mytszdiagret'; public static void mytszdiagret ( java.sql.Timestamp p1, java.sql.Timestamp[] result) throws SQLException
Java仮想マシンの実装では、うるう秒がサポートされていないため、SECONDフィールドの最大値は61.999999ではなく、59.999999です。
次は、INTERVAL YEARパラメータ データ型の例です。
CREATE PROCEDURE intcpy (IN parameter_1 INTERVAL YEAR, OUT t INTERVAL YEAR ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.intcpy'; public static void intcpy( String param_1, String[] result ) throws SQLException
次は、CHARACTERまたはVARCHARパラメータ データ型の例です。
CREATE PROCEDURE strcpy (IN parameter_1 VARCHAR(15), OUT t VARCHAR(15) ) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.strcpy'; public static void strcpy( String param_1, String[] result ) throws SQLException
次は、CLOBパラメータ データ型の例です。
CREATE PROCEDURE myclobdiagret2 (IN b CLOB) LANGUAGE JAVA MODIFIES SQL DATA PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.myclobdiagret2'; public static void myclobdiagret2( java.sql.Clob data) throws SQLException { Connection conn = DriverManager.getConnection("jdbc:default:connection"); PreparedStatement p = conn.prepareStatement("ins into tab2 values(1,?)"); p.setClob(1, data); p.executeUpdate(); }
次は、VARBYTEパラメータ データ型の例です。
CREATE PROCEDURE mybvdiagret (IN c varbyte(30), OUT d varbyte(30)) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.mybvdiagret'; public static void mybvdiagret( byte[] data, byte[][] Result ) throws SQLException
次は、BLOBパラメータ データ型の例です。
CREATE PROCEDURE myblobdiagret (IN b blob, OUT c blob) LANGUAGE JAVA NO SQL PARAMETER STYLE JAVA EXTERNAL NAME 'user_jar:UnitTest.myblobdiagret'; public static void myblobdiagret( java.sql.Blob data, java.sql.Blob[] Result) throws SQLException