Update of /cvsroot/csvtosql/csvtosql/src/net/sf/csv2sql/writers
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28525/src/net/sf/csv2sql/writers
Modified Files:
JdbcWriter.java
Log Message:
Hi Davide,
we found some bugs in csvtosql package in JdbcWriter.java and
JdbcBatchWriter.java.
We tried to use csvtosql to import some data directly to Oracle9i
database, but Exception ORA-00911: invalid character occurs ...
Problem is, that JdbcWriter/JdbcBatchWriter gets SQL statements from
storage and puts them directly into stmt.executeUpdate method. Every SQL
statement (String) contains as last character semicolon (as delimiter of
SQL statements), however stmt.executeUpdate() method expect this SQL
statement without any delimiter. Quick and dirty patch is to remove last
character of every statement, for example ...
Here is diff between
csvtosql_jdk50\src\net\sf\csv2sql\writers\JdbcWriter.java
and patched file
95c95,96
< stmt.executeUpdate(getStorage().get(i));
---
> String line = (String) getStorage().get(i);
> stmt.executeUpdate(line.substring(0,line.length()-1));
Well, it should be better to test, if last characted is semicolon, if
yes, remove it, if no, no action is necessary ...
The same problem is in csvtosql package for jdk 1.4.
Hope this help, could you please fix this in some next release?
Thanks, best regards,
Daniel Marek
Index: JdbcWriter.java
===================================================================
RCS file: /cvsroot/csvtosql/csvtosql/src/net/sf/csv2sql/writers/JdbcWriter.java,v
retrieving revision 1.30
retrieving revision 1.31
diff -C2 -d -r1.30 -r1.31
*** JdbcWriter.java 6 Apr 2006 14:49:55 -0000 1.30
--- JdbcWriter.java 6 Apr 2006 14:50:51 -0000 1.31
***************
*** 87,91 ****
connection = DBUtils.openConnection(driver, url, username, password);
}
!
stmt = connection.createStatement();
--- 87,91 ----
connection = DBUtils.openConnection(driver, url, username, password);
}
!
stmt = connection.createStatement();
***************
*** 94,97 ****
--- 94,98 ----
for (int i=0; i<getStorage().size(); i++) {
+ //
//stmt.executeUpdate(getStorage().get(i));
String line = (String) getStorage().get(i);
|