oracle的JDBC使用preparedStatement处理char类型字段的问题
2014-03-26 11:33
387 查看
对于oracle的JDBC使用preparedStatement处理char类型字段的问题
参考转载:http://together.javaeye.com/blog/28035
create table test(name char(7));内有N条值为hello的记录
实验:
第一种:不用占位符,
记录集rs有数据;
第二种:使用占位符,
记录集rs中无任何数据。
将字段类型改为varchar时以上两条jdbc sql均无任何问题。因此,不要再费劲了,至于产生此问题的详细原因:与oracle的jdbc驱动有关,试了classes12.jar和ojdbc.jar,也试过了oci驱动,均错误依旧。
解决办法:可以利用cast(value,类型(length)) 转换,
如上可以:
参考转载:http://together.javaeye.com/blog/28035
create table test(name char(7));内有N条值为hello的记录
实验:
第一种:不用占位符,
java.sql.PreparedStatement ps = connection().prepareStatement("select * from test where name='hello'");
java.sql.ResultSet rs = ps.executeQuery();
记录集rs有数据;
第二种:使用占位符,
java.sql.PreparedStatement ps = connection().prepareStatement("select * from test where name=?");
ps.setString(1,"hello");
java.sql.ResultSet rs = ps.executeQuery();
记录集rs中无任何数据。
将字段类型改为varchar时以上两条jdbc sql均无任何问题。因此,不要再费劲了,至于产生此问题的详细原因:与oracle的jdbc驱动有关,试了classes12.jar和ojdbc.jar,也试过了oci驱动,均错误依旧。
解决办法:可以利用cast(value,类型(length)) 转换,
如上可以:
ps.setString(1,cast("hello",char(7)));这样可以解决问题。 阅读更多
相关文章推荐
- oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
- Oracle中Number类型字段使用.netTiers和CodeSmith问题的解决方案
- 使用Hibernate4处理Oracle XmlType字段类型
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- 使用JDBC时与Oracle的类型匹配问题
- 解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- Oracle中varchar2类型字段长度限制使用问题
- Oracle字段类型char、varchar2、nvarchar2的区别与使用
- 关于Oracle字段类型Date使用mybatis generator自动生成工具出现的查询日期只精确到年月日问题
- oracle 定长字段查询问题 ,ibatis 与pl/sql查询的char类型字段查询不同
- 在oracle中字段类型LONG的使用注意事项
- oracle的char类型对空格的怪异处理
- jdbc中如何处理Oracle BLOB字段
- oracle中使用SQL语句修改字段类型
- Oracle CHAR,VARCHAR,VARCHAR2,nvarchar类型的区别与使用
- jdbc中如何处理Oracle BLOB字段(经典)