如何从 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 列的主要内容,如果未能解决你的问题,请参考以下文章