День добрый.
Работаю с MySQL из Java (версия коннектора 5.0.4). Вызов хранимой процедуры произвожу примерно так:
CallableStatement stmt = connection.prepareCall("{call my_proc_name(?, ?, ?)}");
stmt.execute();
Всё бы хорошо, если бы не нужно было в prepareCall указывать точное количество параметров процедуры. Если у процедуры изменится число параметров, придётся модифицировать java-код. Метаданные процедуры доступны только после вызова prepareCall.
Сейчас, перед вызовом prepareCall я запрашиваю число параметров процедуры (через SHOW CREATE PROCEDURE my_proc_name), произвожу разбор исходного текста и получаю искомое количество параметров — то есть точно то же самое, что делает драйвер в вызове prepareCall!
Вопрос: нужна ли такая двойная работа? Возможно ли вызвать prepareCall не указывая точное число параметров?