Hello,
The following code doesn't work for SELECT query on very large tables
:
...
import javax.sql.RowSet;
import oracle.jdbc.rowset.OracleJDBCRowSet;
....
RowSet rowset = new OracleJDBCRowSet();
rowset.setUsername(username);
rowset.setPassword(password);
rowset.setUrl(url);
rowset.setConcurrency(ResultSet.CONCUR_UPDATABLE);
rowset.setCommand();
rowset.execute();
while ( rowset.next() )
{
// These variables have been declared earlier
callType = rowset.getString("CALL_TYPE");
otherNumber= rowset.getString("OTHER_NUMBER");
timestamp = rowset.getTimestamp("CHARGING_TIMESTAMP");
volume = rowset.getInt("VOLUME");
rowset.updateFloat("CHARGE", volume * 0.50);
rowset.updateRow();
}
// Closing the DB connection.
rowset.close();
...
The jars used : ojdbc14.jar, ocr12.zip, ocr12.jar comes along with
Oracle 9i.
It runs out of memeory when I try to execute it on a large table. Is
it because the rowset is trying to cache the entire resultset in
memory? From practical requirements point a view neither can I
guarantee that the data would be lesser than permitted by the m/c's
main memory on which it will be implemented nor the actual table can
be split up into chunks.
Is there any other way out ? Please reply asap.
Amit Ray.
http://www.go4expert.com/forums/