java – 如何使用Oracle jdbc驱动程序的fixedString属性?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何使用Oracle jdbc驱动程序的fixedString属性?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1458字,纯文字阅读大概需要3分钟。
内容图文
Oracle在char列中填充值,因此如果我在CHAR(2)列中插入“a”,那么我无法通过将该列与“a”进行比较来获取该记录,我应该通过将其与“a”进行比较来获得该记录.对?
要解决此问题,Oracle jdbc驱动程序具有属性fixedString但我无法使其工作. (寻找fixedString here)
我正在为Oracle 10gR2使用ojdbc14.jar驱动程序并访问Oracle 10gR2数据库.
这是我的代码:
try {
Properties props = new Properties();
props.put("user", "****");
props.put("password", "****");
props.put("fixedString", true);
Class.forName("oracle.jdbc.driver.OracleDriver");
String jdbcUrl = "jdbc:oracle:thin:@<host>:<port>:<sid>";
Connection connection = DriverManager.getConnection(jdbcUrl, props);
PreparedStatement ps = connection.prepareStatement(
"SELECT * FROM MY_TABLE WHERE MY_TABLE_ID = ?");
ps.setObject(1, "abc"); // (*)
// MY_TABLE_ID is CHAR(15)
ResultSet rs = ps.executeQuery();
while (rs.next())
{
System.out.print("data: ");
System.out.println(rs.getString("MY_TABLE_ID"));
}
rs.close();
ps.close();
connection.close();
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
上面的代码执行正常(没有抛出异常)但是在executeQuery()之后ResultSet是空的.
如果我更改行(*)
ps.setObject(1, "abc ");
然后我得到了我想要的专栏.所以看起来驱动程序忽略了fixedString选项.
我也试过改变线(*)
ps.setObject(1, "abc", java.sql.Types.CHAR);
但是我得到的ResultSet又是空的.我错过了什么?
提前致谢
解决方法:
尝试使用它
props.put("fixedString", "true");
Oracle文档将fixedString称为String(包含布尔值)
内容总结
以上是互联网集市为您收集整理的java – 如何使用Oracle jdbc驱动程序的fixedString属性?全部内容,希望文章能够帮你解决java – 如何使用Oracle jdbc驱动程序的fixedString属性?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。