LDD Entrer un Timestamp dans une nouvelle ligne (executeUpdate)

Résolu
IceFinger Messages postés 24 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 7 août 2006 - 20 janv. 2006 à 10:39
IceFinger Messages postés 24 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 7 août 2006 - 20 janv. 2006 à 11:10
Voila mon problème :
Je doit transferer une table qui vient d'une autre database. G reussi a lire les deux table en remplaçant "exectuteUpdate" avec "executeQuery"(Voir code ci dessous). Seulement quand j'essai de changer la seconde table, il refuse de lire la seconde table. Quelqu'un sait-il où est mon erreur, ou ce que je dois faire ?
Merci d'avance, voici mon code :

(Les deux tables sont de la forme (Timestamp, String, String)

try {
Connection cnn= (OracleConnection) DriverManager.getConnection(
"jdbc:oracle:thin:@#########################",
"an####", "to#####" );
Connection cnn2= (OracleConnection) DriverManager.getConnection(
"jdbc:oracle:thin:@#########################",
"an#####", "ma######" );
System.out.println("cnn ok");
// get meta data
DatabaseMetaData dmd= cnn.getMetaData();
DatabaseMetaData dmd2= cnn2.getMetaData();

// create database accessor
Statement stmt= cnn.createStatement();
Statement stmt2= cnn2.createStatement();

// check: query and print datas
try {
ResultSet rs= stmt.executeQuery ("select * from JBSC_A where DATA!='null'");
while (rs.next()) {
Timestamp TS = rs.getTimestamp("TIMESTAMP");
String RD = rs.getString("DATA");
System.out.println(TS+" "+RD);
try {
stmt2.executeUpdate( "INSERT INTO ENERUA VALUES ("+TS+","+RD+",'A0')");
System.out.println("Inserted");
/*//Essai de lecture de la table 2
ResultSet rs2= stmt2.executeQuery ("select * from ENERUA");
while (rs2.next()) {
System.out.println(rs2.getTimestamp("TIMESTAMP")+" Table 2");}*/
} catch (SQLException e) {
System.out.println("cannot read table 2");
}}

} catch (SQLException e) {
System.out.println("cannot read table");
}



// ok finished

cnn.close();

//System.Exit(0);
} catch(Exception e) {
System.out.println("Cannot connect to database!\t>:-(");
e.printStackTrace();
}



Desolé pour les #### mais je ne peut pas rendre public ces tables.

Ce que j'obtient c'est :

"2003-07-03 22:45:12.012
0166KHBDHBBKB...
cannot read table 2
..."
Qui se repete autant de fois qu'il ya de données.

Merci de votre interet et eventuellement de votre aide

Ice

2 réponses

IceFinger Messages postés 24 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 7 août 2006
20 janv. 2006 à 11:10
Je viens de trouver moi meme la solution. pour ceux que ca interesse, il falait faire

String TS ="'"+ rs.getString("TIMESTAMP")+""'";

Dans la premiere table puis

stmt2.executeUpdate( "INSERT INTO ENERVA VALUES ( TIMESTAMP "+TS+","+RD+",'A0')");

Dans la seconde.
Voila ct tout
3
IceFinger Messages postés 24 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 7 août 2006
20 janv. 2006 à 10:45
Desolé je comprend pas, ca a buggé et il n'y a absolument aucun saut de ligne :-(

Je reessaye de donner le code, pour mon probleme, se referer aux premieres et derniere ligne uniquement:

try {
Connection cnn= (OracleConnection) DriverManager.getConnection(
"jdbc:oracle:thin:@#######################",
"a#########", "t#########" );
Connection cnn2= (OracleConnection) DriverManager.getConnection(
"jdbc:oracle:thin:@#######################",
"a###########", "m###########" );
System.out.println("cnn ok");
// get meta data
DatabaseMetaData dmd= cnn.getMetaData();
DatabaseMetaData dmd2= cnn2.getMetaData();

// create database accessor
Statement stmt= cnn.createStatement();
Statement stmt2= cnn2.createStatement();

// check: query and print datas
try {
ResultSet rs= stmt.executeQuery ("select * from JBSC_A where DATA!='null'");
while (rs.next()) {
Timestamp TS = rs.getTimestamp("TIMESTAMP");
String RD = rs.getString("DATA");
System.out.println(TS+" "+RD);
try {
stmt2.executeUpdate( "INSERT INTO ENERUA VALUES ("+TS+","+RD+",'A0')");
System.out.println("Inserted");

/*//Essai de lecture de la table 2 (reussi)
ResultSet rs2= stmt2.executeQuery ("select * from ENERUA");
while (rs2.next()) {
System.out.println(rs2.getTimestamp("TIMESTAMP")+" Table 2");}*/

} catch (SQLException e) {
System.out.println("cannot read table 2");
}}

} catch (SQLException e) {
System.out.println("cannot read table");
}



// ok finished

cnn.close();

//System.Exit(0);
} catch(Exception e) {
System.out.println("Cannot connect to database!\t>:-(");
e.printStackTrace();
}
0
Rejoignez-nous