Creating a Java Scalar UDF

Create and compile a Java class, install the class file onto the server, and create the function definition.

Prerequisites
Task
Use this task as template when creating your own Java UDFs.
  1. Place this Java code in a file named HelloJavaUDF.java:
    public class HelloJavaUDF
    {
        public static String helloJava( String name )
        {
            // Simply return Hello and the name passed in.
            return "Hello " + name;
        }    
    }

    This creates the Java class HelloJavaUDF with a static method helloJava. The method takes a single string argument and returns a string.

  2. Compile HellowJavaUDF.java:
    javac <pathtojavafile>/HelloJavaUDF.java
  3. In Interactive SQL, connect to the iqdemo database.
  4. In Interactive SQL, install the class file onto the server:
    Option Description
    Using absolute path

    INSTALL JAVA NEW FROM FILE '<absolutepathtofile>/HelloJavaUDF.class'

    Example:

    INSTALL JAVA NEW FROM FILE 'd:/mydirectory/HelloJavaUDF.class'

    Using relative path

    INSTALL JAVA NEW FROM FILE '<pathrelativetocwd>/HelloJavaUDF.class'

    Example:

    INSTALL JAVA NEW FROM FILE 'myreldir/HelloJavaUDF.class'

  5. In Interactive SQL, create the function definition.
    Provide the following information:
    • The Java package, class, and method names
    • The Java data types of your function arguments, and their corresponding SQL data types
    • The SQL name assign to the Java UDF
    CREATE FUNCTION my_helloJava(IN name VARCHAR(249) ) 
    RETURNS VARCHAR(255) 
    EXTERNAL NAME 'example.HelloJavaUDF.helloJava(Ljava/lang/String;)Ljava/lang/String;' 
    LANGUAGE JAVA
  6. In Interactive SQL, use the Java UDF in a query against the iqdemo database:
    SELECT my_helloJava( GivenName ) FROM Customers WHERE ID < 110
Related reference
SQL to Java Data Type Conversion
Java to SQL Data Type Conversion