Problème pour splitter l’un des champs de ma table (Java/SQL)

Fermé
Sora1830 - Modifié le 6 mai 2019 à 17:08
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 10 mai 2019 à 03:02
Bonjour, je travaille actuellement sous phpmyadmin et j’ai un petit problème.
En effet, j’ai deux tables (dans des bases différentes) qui portent le même nom, dans l’une ma 1ère colonne s’appelle nom_port_carte. Dans l’autre table j’aimerais splitter cette colonne (nom_port_carte) dans 5 champs à savoir : nom, slot, port, carte et déport.

Mon objectif est donc de transférer les données de nom_port_carte dans 5 champs (nom, slot, port, carte et déport).

A savoir que dans nom_port_carte se trouve des données comme ci-dessous :
RGP011_RIGUEPEU-4-EG4P-1(PORT-1)

Donc dans la 2ème table avec les 5 champs j’aimerais obtenir :

nom : RGP011_RIGUEPEU
slot : 4
port : 1
carte : EG4P
déport : null

CSY8621_COUSSAY-1-EG4P-1(DEPORT GE)
nom : CSY8621_COUSSAY
slot : 1
port : null
carte : EG4P
déport : DEPORT GE

Il faut donc splitter, découper cette chaîne en fonction des tirets.

Partie du code que j'ai écrit pour le transfert :


public void gestRtn() throws SQLException, IOException, FileNotFoundException {
        
        Connection con = Connector_IGPV2_full.getInstance().getCon();
        Connection con2 = Connector_IGPV2_2.getInstance().getCon();
        
        ResultSet rs = con.prepareStatement("SELECT nom_port_carte from perffh_igpv2_1.rtn_sfp").executeQuery();
        
        while(rs.next()) {
            
            PreparedStatement ps = con2.prepareStatement("INSERT INTO rtn (nom, slot, port, carte, deport
                    + "description) values (?,?,?,?,?)");

ps.setString(1, extractNom(rs.getString("nom_port_carte")));
        ps.setString(2, extractSlot(rs.getString("nom_port_carte")));
        ps.setString(3, extractPort(rs.getString("nom_port_carte")));
        ps.setString(4, extractCarte(rs.getString("nom_port_carte")));
        ps.setString(5, extractDeport(rs.getString("nom_port_carte")));

ps.executeUpdate();
            ps.close();
        }
        rs.close();
        con.close();
        con2.close();
    }



Quelqu'un peut me donner un coup de pouce ? SVP

Merci beaucoup pour votre aide, Cordialement. Smiley biggrin
Smiley cligne

Configuration: Windows / Firefox 60.0
A voir également:

2 réponses

Bonjour, à tous.

J'ai tenter quelque chose afin de régler mon problème mais j'ai quelques difficultés.

En effet, je teste pas à pas et pour le slot je n'arrive pas à obtenir 4, j'obtiens :

4EM6F1(0043BRW5)

Voici mon code :



private String[] cutNom(String nom) {
String[] finalSplit = new String[5];
if (nom != null && !nom.equals("NULL") && nom.length() > 10) {
String temp3 = nom.substring(0, nom.indexOf("-"));
nom = temp3.replaceAll("\\s", "_") + " " + nom.substring(nom.indexOf("-"));
nom = nom.replaceAll("\\-", "");
nom = nom.replaceAll("\\(", "");
nom = nom.replaceAll("\\)", "");
nom = nom.replaceAll("\\s", "\\|");
String[] rawSplit = nom.split("\\|");
finalSplit = new String[5];

finalSplit[0] = rawSplit[0];
finalSplit[1] = rawSplit[1];
//finalSplit[2] = rawSplit[2];
//finalSplit[3] = rawSplit[3];
//rawSplit[3] = rawSplit[3].replace("-", "/");
//String[] temp = rawSplit[4].split("-");
//finalSplit[2] = rawSplit[2] + " " + temp[0] + "/" + temp[1];
//finalSplit[3] = rawSplit[3];
//String[] temp2 = rawSplit[4].split("/");
//finalSplit[4] = temp[2] + " " + temp2[0] + "/" + temp2[1];
}
return finalSplit;
}



Cordialement.
0
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 121
10 mai 2019 à 03:02
Bonjour,

Vous pouvez faire un split en utilisant le caractère "-" ensuite vous traitez la dernière partie à part. Cela simplifiera votre code qui semble trop compliqué par rapport à l'objectif visé.
0