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

Sora1853
Invité n'ayant pas de compte PHPfrance

06 mai 2019, 14:24

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 : Tout sélectionner

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(); }
Merci beaucoup pour votre aide, Cordialement. Smiley biggrin
Smiley cligne

Petit nouveau ! | 4 Messages

06 mai 2019, 15:03

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

Petit nouveau ! | 4 Messages

06 mai 2019, 15:49

Merci par avance pour votre aide.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 mai 2019, 17:08

Merci d'arrêter de faire des "up", c'est très impoli et ça ne permet pas d'obtenir une réponse plus rapidement (ça aurait même tendance à être contre-productif).

Si tu n'as pas de réponse c'est soit que ta question est mal formulée, soit qu'aucun membre bénévole qui intervient sur le forum n'a eu le temps de regarder, soit que personne ici n'a la réponse.

En l’occurrence, poser une question de JAVA sur un site dédié au langage PHP ne me parait pas la meilleure idée qu'il soit...
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 4 Messages

07 mai 2019, 09:30

Bonjour, merci pour ta réponse @rthur.
Pas de souci je ne ferais plus de up.
En l'occurrence ma question concerne Java mais également SQL qui touche au base de données, c'est pourquoi je l'ai posée dans la rubrique "SQL & Bases de données".
Cordialement.

Petit nouveau ! | 4 Messages

09 mai 2019, 10:41

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 : Tout sélectionner

/** * 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; }
Cordialement.