在Oracle JDBC访问中加入Spring特性
2007-05-10 12:20:43 来源:WEB开发网Oracle 数据库及其 JDBC 驱动程序通过 Error Code 提供的更丰富得多的详细信息的一个明显的例子是 SQLState 代码 42000 (通常这指示语法错误或访问问题)。对于 Oracle JDBC 驱动程序的大量不同的 Oracle 错误码,SQLException 都将返回相同的 SQLState 值 (42000)。对应 SQLState 的 42000 值的一些 Oracle 错误码包括 900(“无效 SQL 语句”)、903(“无效表名”)、904(“无效标识符”)、911(“无效字符”)和 936(“缺少表达式”)。此外很明显任何来源于 Oracle JDBC 驱动程序的错误(与来源于 Oracle 数据库的错误相反)都没有任何对应的 SQLState。正如这些例子所显示那样,Oracle 特有的错误码所提供的关于错误情况的详细信息要比与供应商无关的 SQLState 所提供的信息更丰富得多。
有时候区分来源于 Oracle 数据库的错误和来源于 Oracle JDBC 驱动程序的错误非常重要。例如,903(“无效的表名”)错误码对应 Oracle 数据库错误码 ORA-00903。相反,17003(“无效的列索引”)错误码对应 Oracle JDBC 驱动程序错误码 ORA-17003。这两种类型的错误码(数据库和 JDBC 驱动程序)都是 Oracle 特有的(如 ORA- 前缀所指示的那样)。因为没有为来源于 Oracle JDBC 驱动程序的错误提供 SQLState 错误码,因此必须使用 Oracle 特有的错误码来区分由 JDBC 驱动程序导致的错误。
在下面的表 1 中列出了访问 Oracle 数据库的 JDBC 中的一些最常见的错误。“示例代码和/或注释”列中的示例显示了导致这种错误的 SQL 语句类型或提供了关于表中的该行上显示的特定错误的其他注释。
表 1
错误标记 Oracle 错误 SQLState 示例代码和/或注释
更多精彩
赞助商链接