LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 913|回复: 0

postgresql jdbc 问题

[复制链接]
发表于 2005-2-16 13:45:48 | 显示全部楼层 |阅读模式
数据库为postgresql 8.0.1, jdbc driver postgresql-8.0-310.jdbc3.jar



create table test(field1 varchar(8), field2 varchar(4));

下面代码:

ResultSet rst = stmt.executeQuery("select coalesce(field1, field2) from test");

System.out.println(rst.getMetaData().getColumnDisplaySize(1));

结果:-5

如果接着
CachedRowSetImpl rs = new CachedRowSetImpl();
rs.populate(rst);

导致

java.sql.SQLException: Invalid column display size. Cannot be less than zero
at javax.sql.rowset.RowSetMetaDataImpl.setColumnDisplaySize(RowSetMetaDataImpl.java:267)
    at com.sun.rowset.CachedRowSetImpl.initMetaData(CachedRowSetImpl.java:679)
    at com.sun.rowset.CachedRowSetImpl.populate(CachedRowSetImpl.java:597)
...

如果在设计表时,将field1和field2的宽度设为相等,例如 varchar(8)

System.out.println(rst.getMetaData().getColumnDisplaySize(1));
结果为 8
rs.populate(rst); 也不出错,

类似问题在SQL2000下没有
到底是postgresql的问题还是jdbc驱动的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表