A instrução CREATE PROCEDURE permite criar procedimentos armazenados em Java, que podem ser chamados utilizando a instrução CALL PROCEDURE.
CREATE PROCEDURE nome-do-procedimento ( [ parâmetro-do-procedimento [, parâmetro-do-procedimento] ] * ) [ elemento-do-procedimento ] *
Se o nome-do-esquema não for fornecido, o esquema corrente será o esquema padrão. Se for especificado um nome de procedimento qualificado, o nome do esquema não poderá começar por SYS.
O valor padrão para o parâmetro é IN. O nome-do-parâmetro deve ser único no procedimento.
A sintaxe do tipo-de-dado está descrita em Tipos de dado.
{ | [ DYNAMIC ] RESULT SETS INTEGER | LANGUAGE { JAVA } | EXTERNAL NAME cadeia-de-caracteres | PARAMETER STYLE JAVA | { NO SQL | MODIFIES SQL DATA | CONTAINS SQL | READS SQL DATA } }
Indica o limite superior estimado de conjuntos de resultados retornados pelo procedimento. O padrão é sem (zero) conjuntos de resultados dinâmicos.
JAVA - o gerenciador de banco de dados chama o procedimento como um método estático público de uma classe Java.
nome_da_classe.nome_do_métodoO nome externo não pode conter espaços.
JAVA - O procedimento 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 [] que são 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 o procedimento armazenado emite instruções SQL e, se o fizer, de que tipo.
CREATE PROCEDURE VENDAS.RENDIMENTO_TOTAL(IN V_MÊS INTEGER, IN V_ANO INTEGER, OUT TOTAL DECIMAL(10,2)) PARAMETER STYLE JAVA READS SQL DATA LANGUAGE JAVA EXTERNAL NAME 'com.acme.vendas.calculaRendimentoPorMes'