Deve funcionar se você usar um
Declaração
em vez de um CallableStatement
. Você deve usar
Instrução para todos os DDL, PreparedStatement para DML e CallableStatement para chamadas de procedimento. Criar um procedimento é DDL. Um
CallableStatement tentará detectar e vincular variáveis identificadas por dois pontos : então provavelmente é por isso que seu código não funcionou.