Erro ao executar addBarch() usando prepared statement com um dos parâmetros com valor null

0 respostas
K

o código é mais ou menos esse ai:

String query = "insert into PESSOA (id, nome, data_nascimento, flag) values (sequnce.nextval,?,?,?)";
PreparedStatement ps = conn.PreparedStatement(query);

while(rsOutoBanco.next()) {
 String nome = rsOutroBanco.getString("nome");
 String data = rsOutroBanco.getString("data");
 String flag = rsOutroBanco.getString("flag");

 if(nome == null)
	 ps.setNull(1, java.sql.Types.VARCHAR);
 else
	 ps.setObject(1, nome);

  if(data == null)
	ps.setNull(2, java.sql.Types.DATE);
  else
	ps.setObject(2, data);

   if(flag == null)
	ps.setNull(3, Types.VARCHAR);				
   else
	ps.setObject(3, flag);			

   ps.addBatch();	
}

ps.executeBatch();
o erro ocorre quanto tento setar algum valor com null. Quando uso addBatch não pode haver valores null no preparedStatement??

lançou a exception abaixo:

java.lang.NullPointerException
at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431)
at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528)

at oracle.jdbc.driver.OraclePreparedStatement.checkBindTypes(OraclePrepa
redStatement.java:3271)
at oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStat
ement.java:1322)

Criado 3 de março de 2008
Respostas 0
Participantes 1