03. marts 2004 - 12:53Der er
11 kommentarer og 2 løsninger
Problems with ResultSet from CallableStatement
Hello!
I have a tricky question.
I execute the following storedprocedure to a Oracle database: CREATE OR REPLACE PROCEDURE getImages (p_cursor OUT SYS_REFCURSOR) AS BEGIN OPEN p_cursor FOR SELECT ID, FILNAMN FROM bild; END;
with this Java code: callableStatement = connection.prepareCall(storedProcedure, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); callableStatement.registerOutParameter(i+1, OracleTypes.CURSOR);
To get hold of the ResultSet I do: callableStatement.executeQuery(); resultSet = (ResultSet) callableStatement.getObject(1);
That seems to work fine, but later on I have to do this: resultSet.beforeFirst();
But It gives me an exception, that beforeFirst is not allowed: java.sql.SQLException: Ogiltig Õtgõrd f÷r endast vidarebefordrad resultatuppsõtt ning: beforeFirst at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.driver.BaseResultSet.beforeFirst(BaseResultSet.java:72) at p6b4005.DatabaseAccessor.executeOracleStoredProcedure(DatabaseAccesso r.java:231) at p6b4005.DatabaseAccessor.main(DatabaseAccessor.java:806)
Evidently the prepareCall method only effects the returned ResultSet delivered by the callableStatement.executeQuery(); And not the resulset delivered by the resultSet = (ResultSet) callableStatement.getObject(1);
But how should I do to make this ResultSet scrollable so I can call resultSet.beforeFirst();???
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
BTW, many (all ?) JDBC drivers that supports scrollable result sets do it by reading everything into memory => never use scrolleable result set on large data.
BTW her is your well earned points! Best regards Fredrik
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.