我正在尝试使用

“New Methods for National Character Set Type Data in JDK 1.6”来获得标准的JDBC解决方案来处理西里尔字符,但是当执行到达任何具有NVARCHAR类型的行时,例如:

preparedSelect.setObject(3, "суббота", Types.NVARCHAR);

然后我得到这个例外:

java.sql.SQLException: Invalid column type

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)

at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:269)

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:490)

at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7922)

at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7502)

at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:7975)

at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:222)

我也尝试使用setNString(),但我得到一个更奇怪的例外:

java.lang.AbstractMethodError: oracle.jdbc.driver.OraclePreparedStatementWrapper.setNString(ILjava/lang/String;)V

如果我使用带有常规Types.VARCHAR的java -Doracle.jdbc.defaultNChar = true myApplication,则会正确存储俄语单词.但是使用-Doracle.jdbc.defaultNChar = true不是一个选项,因为我正在处理遗留应用程序,我无法控制运行生产环境,我只是在编写一个组件.此外,“Readme for NChar How-to”还指出“此转换对性能产生重大影响”.因此,默认情况下,只有少于1%的表需要进行此转换而不是智能选择时,将所有内容设置为NChar.

我正在使用oracle瘦驱动程序,我的classpath中有ojdbc6.jar和orai18n.jar.

我正在寻找标准的JDBC解决方案.我不能在它们上使用任何带有“oracle”的方法或常量. OraclePreparedStatement对我来说不是一个选项.

我尝试使用Types.NVARCHAR与MSSQL Server,它运行正常.

java 使用 oracle的nvarchar2类型 字符串,java – 使用带有oracle JDBC驱动程序的Types.NVARCHAR来处理Cyrillic字符...相关推荐

  1. oracle时间类型转化成java对象_Oracle数据库date类型与Java中Date的联系与转化

    以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助. new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当 ...

  2. java中常见数据库字段类型与java.sql.Types的对应

    转自:http://blog.csdn.net/hbzyaxiu520/article/details/5457225 常见数据库字段类型与java.sql.Types的对应 Oracle与java. ...

  3. [Java]从键盘输入一行英文字符串,把所有小写字母变成大写字母,其他字母和字符保持不变。

    从键盘输入一行英文字符串,把所有小写字母变成大写字母,其他字母和字符保持不变. [问题描述] 从键盘输入一行英文字符串,把所有小写字母变成大写字母,其他字母和字符保持不变. [输入形式] 输入一行字符 ...

  4. Java使用正则表达式去掉小数类型字符串多余的.与0

    /*** 使用java正则表达式去掉多余的.与0** @param str 小数类型的字符串* @return 去掉小数点或多余的0*/ public static String subZeroAnd ...

  5. oracle的clob类型对应java,java对oracle9i中CLOB类型的操作

    这是一个完整的使用java对oracle9i的操作,其实,使用oracle10g后,操作将非常方便,但现在由于仍在使用oracle9i,所以不得不忍受这种痛苦.现将对oracle9i中CLOB类型的操 ...

  6. Java后台调用Flex自定义类型 (Java和AS类型转换问题)

    最近在做一个基于Red5的流媒体交互平台,实现音频,视频,文本的交互.遇到一个问题,封装的类型要能进行转换,或许第一想到的是BlazeDS实现数据的转换,这里不是实现前台代用后台,是后台处理前台的实体 ...

  7. java如何将日期转化成字符串,Java将日期转换为字符串

    本文概述 我们可以使用java.text.DateFormat类的format()方法在Java中将Date转换为String. DateFormat的format()方法 DateFormat类的f ...

  8. java从指定文件中删除字符串,java删除指定目录中的文件或文件夹

    java删除指定目录中的文件或文件夹 package tf; import java.io.File; public class DelFile { public static void main(S ...

  9. Oracle笔记-Timestamp类型的插入及获取(JDBC获取)

    这个其实是个很基础的知识点.本人在项目中用到了这个.在此记录下,方便以后查阅! 首先是SQL语句插入: 比如要插入如下格式的数据2020-11-16 16:09:12到timestamp中,这里要忽略 ...

最新文章

  1. ruby Encoding
  2. 国际顶级学术会议CIKM2019北京开幕在即,重量级嘉宾带你窥探人工智能前沿
  3. Sprint Application bootstrap的研究和调试
  4. NYOJ--927--dfs--The partial sum problem
  5. MetaTransformer:简单到尴尬的视觉模型
  6. 学fpga(流水灯)
  7. python路线图_Python路线图
  8. 关于这个blog使用的问题?
  9. Linux C/C++UDP通信实现
  10. 如何修改Windows(可移植)桌面文件夹图标
  11. 有什么软件可以免费下载歌曲?99%不知道这3款软件!
  12. 火车采集器采集ajax,火车头采集器JavaScript之ajax网站采集实例教程
  13. 云台山风景美如画,四大网红打卡景点等你来!
  14. 2022非常全的接口测试面试题及参考答案-软件测试工程师没有碰到算我输~
  15. 实现Windows下Qt扫描U盘的两种方式
  16. Bootstrap中jumbotron属性
  17. update多表联合更新
  18. 计算机控制算法差分方程,最优控制算法
  19. MWCA2019美国移动通讯大会
  20. 使用cxf发布webservice接口,以及调用webservice接口

热门文章

  1. 关于长短时记忆的一个小感想
  2. web开发学习之路是否有尽头
  3. 微软背水一战?免费WP系统或引发市场洗牌
  4. 揭秘美国DHS下的国家网络安全和通信整合中心(NCCIC)
  5. 魔方cfop公式软件_【番外篇】CFOP玩法进阶技巧与衍生解法介绍大全!
  6. 出入境检疫局办理健康证流程
  7. 对于技术岗位而言,开发岗累还是算法岗累呢?
  8. 一个小老板的生意经,别人都不赚钱的时候凭什么他还能继续大赚?
  9. python画龙猫_龙猫Python简单学
  10. 批处理命令中的set/a 是什么意思