...
От | gurkan@resolution.com |
---|---|
Тема | ... |
Дата | |
Msg-id | 1125617538.43178f82aaebf@www.resolution.com обсуждение исходный текст |
Ответы |
Re: setting large bytea values
|
Список | pgsql-jdbc |
Hi, I have been working on conversion program from Informix to PostgreSQL db, and I have a one table which has large data(bytea). I need to be able to copy this one row (docdata column) that I have which is close to 32MB. Program seems to read the data but cannot copy to postgres (PreparedStatement), it gives OutOfMemoryError. I ran the program with these heap too. java -Xms200m -Xmx700m AddDoc and I do not want to use LargeObject api (I do partion of data based on their dates going from one table to many tables; data seems to be stored at pg_largeobjects tbale). Here is the part of the code, and any help apriciated. How do I copy large data like 32MB or greater? Thanks wbin = informixRs.getBinaryStream("docdata"); while ((wbyte = wbin.read ()) != -1) { wbout.write (wbyte); } outln ("Size of KB is: " + wbout.toByteArray().length/1024); size += wbout.toByteArray().length; inp = new ByteArrayInputStream(wbout.toByteArray()); wbin = null; postgresStmt = postgresConn.prepareStatement("INSERT INTO "+tableName+" (id,docdata) VALUES (?,?)"); postgresStmt.setInt(1,id); if(docdef_id.compareTo("12720") == 0 ) { outln("\n\nbefore out of memory"); postgresStmt.setBinaryStream (2, inp, inp.available()); outln("\n\nafter out of memory");//cannot reach here } else { postgresStmt.setBinaryStream (2, inp, inp.available()); } ------------------------------------------------- This mail sent through IMP: www.resolution.com
В списке pgsql-jdbc по дате отправления: