SQL definitions for default I/O user-defined routines
After you register the Java™ UDT with the database server by using the SQL procedure setUDTExtName(), you can create SQL functions and casts for it, using either the default I/O wrapper methods or explicit methods in your Java™ UDT class.
For the default I/O wrapper methods, the registerJUDTfuncs function
creates the SQL functions shown in the following example, where SQLType is
the SQL UDT name, JavaType is the JUDT name, and SQLBuffer is
the SQL transport type being converted, that is, SENDRECV:
-- Receive function
CREATE IMPLICIT CAST (SENDRECV as SQLUDT with
IfxJavaSENDRECVInJavaUDT);
CREATE FUNCTION IfxJavaSENDRECVInJavaUDT (in SENDRECV)
RETURNS SQLUDT
EXTERNAL NAME
'com.informix.jdbc.IfxDataPointer.IfxDataInput(java.lang.Object)'
LANGUAGE java;
GRANT EXECUTE ON FUNCTION IfxJavaSENDRECVInJavaUDT TO PUBLIC;
-- Send function
CREATE EXPLICIT CAST (SQLUDT as SENDRECV with
IfxJavaSENDRECVOutJavaUDT);
CREATE FUNCTION IfxJavaSENDRECVOutJavaUDT(out SQLUDT) RETURNS
SENDRECV
EXTERNAL NAME 'com.informix.jdbc.IfxDataPointer.IfxDataOutput(java.sql.SQLData)'
LANGUAGE java NOT VARIANT;
GRANT EXECUTE ON IfxJavaSENDRECVOutJavaUDT TO PUBLIC;
The default Input method cannot be declared not variant because it might need to perform SQL queries to instantiate the correct Java™ UDT class.