Попытка пакетных вызовов хранимых процедур SQL: Неправильный синтаксис рядом с «@p0»

#java #jdbc #jdbctemplate #sybase-ase15

Вопрос:

Я вызываю хранимую процедуру SQL с помощью SimpleJdbcCall , и она работает отлично — за исключением того, что производительность слишком низкая.

Чтобы улучшить это, я попытался сгруппировать вызовы, чтобы они выполнялись за один раз, — и я не могу найти способ сделать это.

SimpleJdbcCall не похоже, чтобы его можно было дозировать.

Так что я нашел jdbcTemplate.batchUpdate(

Я построил параметры как в List<Object[]> формате, так и с использованием BatchPreparedStatementSetter , в любом случае, я вижу ту же ошибку:

 Incorrect syntax near '@p0'.
 

Вот инструкция SQL, которую я пытаюсь выполнить в пакетном режиме:

 call PortfolioCacheStore ?,?,?,?,?,?,?,?,?,?,?,?,?
 

Я пробовал это, используя как call, так и exec, а также со скобками и без них:

 call PortfolioCacheStore(?,?,?,?,?,?,?,?,?,?,?,?,?)
 

и т.д.

В любом случае я получаю вышеуказанную ошибку или что-то очень похожее.

Если я возьму запрос, который он строит, и запущу его в клиенте SQL, он будет работать:

 exec PortfolioCacheStore 'G','LL','U','B',0,'2021-09-03','2022-01-19',5,'D','FO.tgz',0,'e-local','Arg'
 

Кто-нибудь знает, что не так с тем, что я делаю, и/или как я могу передать последовательность вызовов хранимых процедур в Sybase из JDBC, пожалуйста?

Комментарии:

1. Какой продукт Sybase вы используете? Пожалуйста, пометьте свой вопрос этим продуктом.

2. Адаптивный сервер Enterprise/15.7/EBF 25127 SMP SP136 /P/x86_64/Корпоративный Linux/ase157sp136x/3955/64-bit/FBO/Пн 19 октября 19:12:00 2015

3. Теперь я попытался удалить все материалы JdbcTemplate и использовать необработанное подготовленное утверждение — чтобы получить точно такую же ошибку!

4. Это наводит на мысль, что сам драйвер выполняет какой-то перевод, который почему-то недействителен.