Java 无法使用JDBC执行存储过程

Java 无法使用JDBC执行存储过程,java,jdbc,sybase,Java,Jdbc,Sybase,我使用sybase数据库并尝试将一些值更新到数据库中 尝试运行此操作时,会引发异常,如下所示: com.sybase.jdbc2.jdbc.sybsqlsexception:以“WeeklyStudentEventClassArchiv”开头的标识符太长。最大长度为30 此表位于另一个数据库中,因此我必须使用数据库名和表名,如下所示: StudActive..每周学生人数明显超过30个字符 我必须在存储过程中使用databasename..tablename,但它会引发异常 即使我将sql实际嵌

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

尝试运行此操作时,会引发异常,如下所示: com.sybase.jdbc2.jdbc.sybsqlsexception:以“WeeklyStudentEventClassArchiv”开头的标识符太长。最大长度为30

此表位于另一个数据库中,因此我必须使用数据库名和表名,如下所示: StudActive..每周学生人数明显超过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
StudyActive.每周学生人数明显超过30人 人物

是的,我数41


重命名表和/或存储的进程,您应该会没事。这就像是JDBC驱动程序或数据库的限制。

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

首先是Sybase网站上更新的jConnect驱动程序。然后更新代码以使用新的驱动程序包。您还需要更改代码,因为每个新版本的规范都会更改驱动程序的包名。当前包是com.sybase.jdbcx


请查看以了解更多信息。

谢谢您的回复。我无法重命名该表。是否有其他方法。我不知道其他方法。您可以重命名存储过程,对吗?重命名存储过程不是问题。但它将如何解决问题。问题在于存储过程中使用的表。对,对不起,我的错误。我看错了引用的字符串的含义。您可以从JDBC驱动程序得到答案:它不会接受超过30个字符。您可以重命名该表,也可以不通过Java调用它。您的选择。如果不是通过java,我可以通过哪种方式调用。您可以直接执行存储过程吗?