2012-03-20 2 views
0

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

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

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

Мне нужно использовать имя_базы данных.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 
+0

Можете ли вы выполнить хранимую процедуру напрямую? – madth3

ответ

0

StudActive..WeeklyStudentEventClassArchiv, по-видимому, превышает 30 символов.

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

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

+0

Спасибо за ответ. Я не могу переименовать таблицу. Есть ли другой способ. –

+0

Никакой другой способ, о котором я знаю. Вы можете переименовать сохраненный процесс, правильно? – duffymo

+0

Переименование хранимой процедуры не является проблемой. Но как она решит проблему. Проблема заключается в таблице, используемой в правиле хранимой процедуры. –

0

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

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

Посмотрите на programmers reference для получения дополнительной информации.

Смежные вопросы