加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2012 getClob():不支持从varchar(nvarchar)到CLOB的

发布时间:2020-12-12 07:25:22 所属栏目:MsSql教程 来源:网络整理
导读:我想知道在下面描述的场景中我做错了什么.我为一个项目评估一些SQL Server版本,并在简单的 Java设置中使用不同的DB类型.我使用 Eclipse,Java 6(1.6u45),驱动程序sqljdbc4.jar,Sql Server 2012(默认安装),Windows 7,我正在尝试从测试数据库/表中编写和读回不同
我想知道在下面描述的场景中我做错了什么.我为一个项目评估一些SQL Server版本,并在简单的 Java设置中使用不同的DB类型.我使用 Eclipse,Java 6(1.6u45),驱动程序sqljdbc4.jar,Sql Server 2012(默认安装),Windows 7,我正在尝试从测试数据库/表中编写和读回不同的数据库类型.
对于NVARCHAR(n或max)和/或VARCHAR(n或max)类型的列,使用setClob()和setCharacterStream()方法写入DB时没有任何问题.但是,当我尝试回读Clobs时,我只能使用getCharacterStream().由于我无法理解的原因,我不能将getClob()与上面列出的任何一种DB类型一起使用.我得到以下异常堆栈:
com.microsoft.sqlserver.jdbc.SQLServerException: The conversion from varchar to CLOB is unsupported.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.DataTypes.throwConversionError(DataTypes.java:1117)
at com.microsoft.sqlserver.jdbc.ServerDTVImpl.getValue(dtv.java:2419)
at com.microsoft.sqlserver.jdbc.DTV.getValue(dtv.java:176)
at com.microsoft.sqlserver.jdbc.Column.getValue(Column.java:113)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1966)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getClob(SQLServerResultSet.java:2488)
at main.com.test.Test.main(Test.java:77)

我找不到这个例外的任何参考. MS文档声称NVARCAHR / VARCHAR列支持getClob().代码非常简单,一个插入然后“Select * from table”然后定位resultset.getxxx(position)调用.
提前感谢任何建议或想法.

解决方法

也许你应该发布java代码.
例如:
Clob clob = rs.getClob(1);

应该管用….

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读