Вы говорите, что ?
должно быть для имени таблицы, поэтому вам необходимо указать фактическое имя таблицы перед вызовом Statement.executeUpdate()
. В этот момент драйвер JDBC сообщит базе данных о фактическом выполнении оператора, поэтому очевидно, что все параметры должны быть связаны.
Может быть, вы хотели написать это:
CallableStatement call = jdbcConnection.prepareCall("call sp_msforeachtable(?)");
call.setString(1, "AnActualTableName");
call.executeUpdate();
или, может быть, вы хотели написать это:
CallableStatement call = jdbcConnection.prepareCall("call sp_msforeachtable(\"ALTER TABLE ? NOCHECK CONSTRAINT all\")");
call.setString(1, "AnActualTableName");
call.executeUpdate();
Я не уверен, что именно должен делать sp_msforeachtable()
, но я знаю, что вы должны предоставить значения для всех параметров перед вызовом executeUpdate()