Powinno działać, jeśli używasz Oświadczenie
zamiast CallableStatement
.
Powinieneś użyć Oświadczenie dla wszystkich DDL, PreparedStatement dla DML i CallableStatement dla wywołań zabiegowych. Tworzenie procedury to DDL.
CallableStatement spróbuje wykryć i powiązać zmienne identyfikowane przez dwukropek : więc prawdopodobnie dlatego Twój kod nie zadziałał.