【发布时间】:2010-11-26 20:10:35
【问题描述】:
SQLException.getSQLState 为 SQLException 对象检索 SQLState。此方法可以返回的所有可能值是什么?我是否可以使用该值来识别数据库中发生的特定错误(即,该值是否可以告诉我这是违反 PK、唯一约束还是列值太大等)?
另外,DatabaseMetaData.getSQLStateType() 方法应该指示SQLException.getSQLState 返回的SQLSTATE 是 X/Open(现在称为 Open Group)SQL CLI 还是 SQL99。唯一可能的值应该是DatabaseMetaData.sqlStateXOpen == 1 和DatabaseMetaData.sqlStateSQL99 == 2,但我得到的值是0。我错过了什么吗?
有没有一种方法可以使用上述方法的组合来确定数据库中发生的特定类型的错误?我可以指望SQLException.getSQLState 的值吗?这些值是否因数据库提供者而异?
【问题讨论】: