A instrução CREATE FUNCTION permite criar funções Java que podem ser utilizadas em expressões.
CREATE FUNCTION nome-da-função ( [ parâmetro-da-função [, parâmetro-da-função] ] * ) RETURNS tipo-de-dado [ elemento-da-função ] *
[ nome-do-esquema. ] IdentificadorSQL92
Se o nome-do-esquema não for fornecido, o esquema corrente se tornará o esquema padrão. Se for especificado um nome de procedimento qualificado, o nome do esquema não poderá começar por SYS.
O nome_do_parâmetro deve ser único na função.
A sintaxe do tipo-de-dado está descrita em Tipos de dado.
{ | LANGUAGE { JAVA } | EXTERNAL NAME cadeia-de-caracteres | PARAMETER STYLE JAVA | { NO SQL | CONTAINS SQL | READS SQL DATA } | { RETURNS NULL ON NULL INPUT | CALLED ON NULL INPUT } }
JAVA- o gerenciador de banco de dados chama a função como um método estático público de uma classe Java.
nome-da-classe.nome-do-métodoO EXTERNAL NAME (nome externo) não pode conter espaços indevidos.
JAVA - A função utiliza uma convenção de passagem de parâmetros em conformidade com a linguagem Java e com a especificação de rotinas SQL. Os parâmetros INOUT e OUT são passados como matrizes de uma única entrada para facilitar o retorno de valores. Os conjuntos de resultados são retornados através de parâmetros adicionais para um método Java do tipo java.sql.ResultSet[] passados como matrizes de uma única entrada.
O Derby não suporta tipos de coluna longos (por exemplo, LONG VARCHAR, BLOB, etc.). Ocasiona erro tentar utilizar um destes tipos de coluna longos.
Indica se a função emite instruções SQL e, se o fizer, de que tipo.
CREATE FUNCTION rad_graus(radianos DOUBLE) RETURNS DOUBLE PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'java.lang.Math.toDegrees'