如何从 Java JDBC-ODBC 桥访问 UniqueIdentifier 列

Posted

技术标签:

【中文标题】如何从 Java JDBC-ODBC 桥访问 UniqueIdentifier 列【英文标题】:How to access a UniqueIdentifer column from Java's JDBC-ODBC bridge 【发布时间】:2010-02-08 18:25:02 【问题描述】:

我目前正在开发一个 java 程序,该程序将使用 Java 发行版中提供的 JDBC-ODBC 桥驱动程序访问 Microsoft SQL Server。

一切似乎都设置正确,我可以从数据库中查询基本数据,但是当我尝试运行一个在其中获取 UniqueIdentifer 字段的查询时,当我执行后续的ResultSet.getString() 时,它会失败:

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]Numeric value out of range

以前有没有人经历过这样的事情?这使用 Microsoft 提供的 JDBC 驱动程序,但客户希望使用他们创建的 DSN。

如果这在我运行 Connection.getMetaData(); 时有帮助,UniqueIdentifer 字段将返回 1111 的 DATA_TYPE

【问题讨论】:

我对特定问题没有直接的答案,但知道 Sourceforge jTDS 驱动程序也可以与 DSN 完美配合可能会很好。另一方面,如果 MSSQL 自己的驱动程序也这样做(ODBC 是 Microsoft 专有的东西),我也不会感到惊讶,但不要把我钉在那个上面。有关详细信息,请参阅其文档。至少,除了糟糕的 ODBC 桥驱动程序之外,任何其他驱动程序总是领先一大步。 您有任何关于使用带有 DSN 的 jTDS 的信息吗?我环顾四周,但无法确定任何细节。 【参考方案1】:

如果您使用 ODBC Driver for SQL Server 和使用 ODBC 规范 call X 方法调用一批两个或多个 Microsoft SQL Server 存储过程,您可能会收到来自驱动程序的以下错误消息:

Numeric Value Out Of Range

Microsoft 已确认这是本文开头列出的 Microsoft 产品中的一个错误。此问题首先在 Microsoft SQL Server 2000 Service Pack 3 中得到纠正。

【讨论】:

以上是关于如何从 Java JDBC-ODBC 桥访问 UniqueIdentifier 列的主要内容,如果未能解决你的问题,请参考以下文章

各类数据库的jdbc驱动及连接字符串总结

为 Java 8 重建 JRE7 jdbc-odbc 桥

Java数据库连接——jdbc-odbc桥连接方式

NetBeans IDE 6.1怎么通过JDBC-ODBC桥访问数据库sql server 2000

Oracle11G_JAVA操作数据库

通过 JDBC-ODBC 桥使用保存点:UnsupportedOperationException