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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
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").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 par avance pour votre aide, Cordialement.



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 :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
 
/**
     * Découpe le champ nom_port_carte
     * @param nom
     * @return String[]  0 = nom / 1 = slot / 2 = port / 3 = carte / 4 = deport
     */
    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;
    }