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ł.