CallableStatement call = conn.prepareCall("存储过程",
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
为什么返回的结果集不能滚动呢?
谢谢专家高手啦
分不多
关键是学习和请教的心比较诚恳啊
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
为什么返回的结果集不能滚动呢?
谢谢专家高手啦
分不多
关键是学习和请教的心比较诚恳啊
ResultSet.CONCUR_READ_ONLY //只读状态
是不是你其他地方代码写错了
CallableStatement call = conn.prepareCall("存储过程",
ResultSet.TYPE_SCROLL_INSENSITIVE, //
ResultSet.CONCUR_UPDATABLE); //
cst.setString(1, t_name);
cst.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
cst.execute();
rs = (ResultSet) cst.getObject(2);2 第一行换成:CallableStatement cst = conn.prepareCall(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);这两种返回的rs都不能滚动!
手上没提ORACLE JDBC驱动源码,不知道它怎么实现这个方法的:
CallableStatement prepareCall(String sql, int resultSetType,
int resultSetConcurrency) throws SQLException;要实现滚动,只能用:Statement 不能用prepareCall
例:
String sql="Select * From user_tab_cols ";
Statement cst=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=cst.executeQuery(sql);
rs.absolute(1);
System.out.println(rs.getString(1));
oracle好像不支持印象不是很强