Java 无法使用JDBC执行存储过程
我使用sybase数据库并尝试将一些值更新到数据库中 尝试运行此操作时,会引发异常,如下所示: com.sybase.jdbc2.jdbc.sybsqlsexception:以“WeeklyStudentEventClassArchiv”开头的标识符太长。最大长度为30 此表位于另一个数据库中,因此我必须使用数据库名和表名,如下所示: StudActive..每周学生人数明显超过30个字符 我必须在存储过程中使用databasename..tablename,但它会引发异常 即使我将sql实际嵌入java代码中,也会发生这种情况 如何解决这个问题Java 无法使用JDBC执行存储过程,java,jdbc,sybase,Java,Jdbc,Sybase,我使用sybase数据库并尝试将一些值更新到数据库中 尝试运行此操作时,会引发异常,如下所示: com.sybase.jdbc2.jdbc.sybsqlsexception:以“WeeklyStudentEventClassArchiv”开头的标识符太长。最大长度为30 此表位于另一个数据库中,因此我必须使用数据库名和表名,如下所示: StudActive..每周学生人数明显超过30个字符 我必须在存储过程中使用databasename..tablename,但它会引发异常 即使我将sql实际嵌
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,我可以通过哪种方式调用。您可以直接执行存储过程吗?