Невозможно выполнить хранимую процедуру с использованием JDBC - PullRequest
0 голосов
/ 20 марта 2012

Я использую базу данных sybase и пытаюсь обновить некоторые значения в базе данных.

При попытке запустить это выдает исключение как: com.sybase.jdbc2.jdbc.SybSQLException: идентификатор, который начинается сWeeklyStudentEventClassArchiv слишком длинный.Максимальная длина - 30.

Эта таблица находится в другой базе данных, и поэтому мне нужно использовать имя базы данных вместе с именем таблицы, как показано ниже: StudActive..WeeklyStudentEventClassArchiv, который, очевидно, превышает 30 символов.

Я должен использовать databasename..tablename в хранимой процедуре, но это вызывает исключение.

Это происходит, даже если я физически встраиваю sql в код java.

Как это может бытьрешено.

The Stored Procedue is as shown:
create proc dbo.sp_getStudentList(
@stDate int,
@endDate int
)
as
begin
set nocount on

      select distinct studCode
      StudActive..WeeklyStudentEventClassArchive      
      where studCode > 0
      and courseStartDate between @stDate and @endDate 



end

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

Ваш драйвер JDBC устарел. Обновление до более поздней версии может помочь решить вашу проблему.

Сначала загрузите более свежий драйвер jConnect с веб-сайта Sybase. Затем обновите свой код, чтобы использовать новый пакет драйверов. Вам также нужно будет изменить свой код, так как имя пакета драйвера изменяется для каждой новой версии спецификации. (Текущий пакет: com.sybase.jdbcx ...)

Для получения дополнительной информации ознакомьтесь с справочником программистов .

0 голосов
/ 20 марта 2012

StudActive..EeeklyStudentEventClassArchiv, который, очевидно, превышает 30 символы.

Да - я считаю 41.

Переименуйте таблицу и / или сохраненный процесс, и все будет в порядке. Это ранит как ограничение драйвера JDBC или базы данных.

...