无法使用JDBC执行存储过程

时间:2012-03-20 12:53:40

标签: java jdbc sybase

我使用sybase数据库,并尝试将一些值更新到数据库中。

尝试运行时会抛出异常,因为: com.sybase.jdbc2.jdbc.SybSQLException:以'WeeklyStudentEventClassArchiv'开头的标识符太长。最大长度为30。

此表位于另一个数据库中,因此我必须使用数据库名称和表名,如下所示: StudActive..WeeklyStudentEventClassArchiv,显然超过30个字符。

我必须在存储的procudure中使用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 :(得分:0)

  

StudActive..WeeklyStudentEventClassArchiv,显然超过30   字符。

是的 - 我算了41.

重命名表和/或存储过程,你应该没问题。它听起来像是JDBC驱动程序或数据库的限制。

答案 1 :(得分:0)

您的JDBC驱动程序已过期。更新到更高版本可能有助于解决您的问题。

来自Sybase网站的第一个download更新的jConnect驱动程序。然后更新代码以使用新的驱动程序包。您还需要更改代码,因为驱动程序的包名称会针对每个新版本的规范进行更改。 (当前包是com.sybase.jdbcx ...)

请查看programmers reference了解详情。