Loba
Setembro 11, 2008, 7:56pm
#1
Oi Pessoal. Preciso de uma ajudinha o seguinte código me da esta excepção: java.sql.SQLException: Índice de coluna inválido.
Alguem me pode ajudar?
Obrigada.
[code] String query = (“insert into Pessoa values (?,? ,to_char(systimestamp, ‘dd:mm:yyyy hh24:mi:ss:ff3’),?,?)”);
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1,args[0]);
pstmt.setString(2, args[1]);
// pstmt2.setInt(3,rset.getInt(2));
pstmt.setString(4, args[3]);
pstmt.setString(5, args[4]);
pstmt.executeUpdate();
Copy.copy(args[5], “c:/novaimagem.jpg”);
pstmt.close();
conn.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}[/code]
Vc só tem 4 parâmetros a passar e está setando de 1 a 5, com exceção do 3. Não está errado nisso?
Loba
Setembro 11, 2008, 8:16pm
#3
eu quero inserir os primeiros 4 parametros numa tabela e a imagem no filesystem
Loba
Setembro 11, 2008, 8:17pm
#4
Copy.copy(args[5], "c:/novaimagem.jpg");
o Copy é outra classe… posso passar o codigo aqui se quiser…
[code]String query = (“insert into Pessoa values (?,? ,to_char(systimestamp, ‘dd:mm:yyyy hh24:mi:ss:ff3’),?,?)”); //CONTE O NÚMERO DE INTERROGAÇÕES
PreparedStatement pstmt = conn.prepareStatement(query);
// AGORA OLHA OS ÍNDICES QUE VC ESTÁ UTILIZANDO: 1, 2, 4, 5?
pstmt.setString(1,args[0]);
pstmt.setString(2, args[1]);
// pstmt2.setInt(3,rset.getInt(2));
pstmt.setString(4, args[3]);
pstmt.setString(5, args[4]); [/code]
Loba
Setembro 11, 2008, 8:25pm
#6
:shock: pura distracção… Obrigada.
Mas agora da a seguinte excepção ORA-00947 not enough values…
Agora é melhor vc consultar o pessoal de Oracle.
Abs!
Danilo
Poste o novo código p/ gente ver.
Loba
Setembro 12, 2008, 9:26am
#9
[code]String query = (“insert into Pessoa values (?,? ,to_char(systimestamp, ‘dd:mm:yyyy hh24:mi:ss:ff3’),?,?)”);
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1,args[0]);
pstmt.setString(2, args[1]);
pstmt.setString(3, args[2]);
pstmt.setString(4, args[3]);
Copy.copy(args[4], “c:/novaimagem.jpg”);
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
}
[/code]
Está aqui…
Quantas colunas tem na tabela Pessoa?
Certeza?
Esse erro acontece quando não está se passando uma quantidade suficiente de parâmetros para inserir a linha na tabela:
http://www.techonthenet.com/oracle/errors/ora00947.php
Loba
Setembro 12, 2008, 9:43am
#13
Sim tem 5. Eu insiro 4 e uma ja lá está… só se estiver a fazer confusao a foto que é enviada para o filesystem.
oyama
Setembro 12, 2008, 1:47pm
#14
Mude de:
String query = ("insert into Pessoa values (?,? ,to_char(systimestamp, 'dd:mm:yyyy hh24:mi:ss:ff3'),?,?)");
para
String query = ("insert into Pessoa (NomeColuna1, NomeColuna2,NomeColuna3,NomeColuna4,NomeColuna5) values (?,? ,to_char(systimestamp, 'dd:mm:yyyy hh24:mi:ss:ff3'),?,?)"); //substitua pelo nome das colunas da sua tabela
Assim você tem certeza se a coluna está certo com relação a tabela.