Find information about user-defined routines

The system catalog tables contain information about UDRs. The LANGUAGE clause of the CREATE FUNCTION or CREATE PROCEDURE statement tells the database server in which language the UDR is written. For UDRs in Java™ code, the LANGUAGE clause must be as follows:
LANGUAGE JAVA
The database server stores valid UDR languages in the sysroutinelangs table. The information includes an integer, the language identifier, in the langid column. The following lines show the entry in the sysroutinelangs system catalog table for the Java language:
langid        3
langname      java
langinitfunc  udrlm_java_init
langpath      $ONEDB_HOME/extend/krakatoa/lmjava.so
langclass     jvp
The Java language has the same default privilege as the C language. The following entry in the syslangauth system catalog table specifies the privileges for the Java language:
grantor       informix
grantee       DBA
langid        3
langauth      u

By default, both user informix and the owner of the database are allowed to create UDRs in Java code. If you attempt to execute the CREATE FUNCTION or CREATE PROCEDURE statement as some other user, the database server generates an error.

To allow other users to register UDRs in the database, user informix can grant the usage privilege on the Java language with the GRANT statement. The following GRANT statement allows any user who has Resource privileges on the database to register UDRs written in Java code:
GRANT USAGE ON LANGUAGE JAVA TO public