我使用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
答案 0 :(得分:0)
StudActive..WeeklyStudentEventClassArchiv,显然超过30 字符。
是的 - 我算了41.
重命名表和/或存储过程,你应该没问题。它听起来像是JDBC驱动程序或数据库的限制。
答案 1 :(得分:0)
您的JDBC驱动程序已过期。更新到更高版本可能有助于解决您的问题。
来自Sybase网站的第一个download更新的jConnect驱动程序。然后更新代码以使用新的驱动程序包。您还需要更改代码,因为驱动程序的包名称会针对每个新版本的规范进行更改。 (当前包是com.sybase.jdbcx ...)
请查看programmers reference了解详情。