IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Fonction REPLACE (SQL/oracle 9.2) [Fait]


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Par défaut Fonction REPLACE (SQL/oracle 9.2)
    Bonjour

    j'aimerai changer dans toute les valeurs d'un champ tous les mots "DESUNION" par "UNION" en maj et en minuscule.

    exemple : paris@desunion.fr -> paris@union.fr

    j'essaie la fonction REPLACE mais ca passe pas

    ma commande est :

    REPLACE ('Paris@DESUNION.FR','DESUNION','UNION') from CONTACT1 where EMAIL = 'Paris@DESUNION.FR'
    mais elle ne fonctionne pas

    j'ai le message d'erreur (qui semble ne rien avoir avec ma commande) :

    ORA-00900 invalid SQL statement
    Cause: The statement is not recognized as a valid SQL statement. This error can occur if the Procedural Option is not installed and a SQL statement is issued that requires this option (for example, a CREATE PROCEDURE statement). You can determine if the Procedural Option is installed by starting SQL*Plus. If the PL/SQL banner is not displayed, then the option is not installed.
    Action: Correct the syntax or install the Procedural Option.

    autre difficulté : j'aimerai remplacer dans mon exemple PARIS par % pour qu'il ne traite que DESUNION car j'ai 5000 adresses email a modifier.

    Merci par avance de votre aide
    Pilou

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    REPLACE est une fonction à appliquer à un champs, à inclure dans une requête SQL valide.

    Dans ton exemple, on va commencer par un select pour voir si tu obtiens bien ce que tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT REPLACE (EMAIL,'DESUNION','UNION') from CONTACT1 where EMAIL = 'Paris@DESUNION.FR';
    Ensuite, j'imagine que le but est de faire un update.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE CONTACT1
    SET EMAIL = REPLACE (EMAIL,'DESUNION','UNION');
    Pense quand même à vérifier que ce replace ne remplacera pas une chaîne de caractère qui ne doit pas l'être, même si je doute que l'un de tes contacts ait un nom contenant 'DESUNION'

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2008
    Messages : 12
    Par défaut RESOLUT
    Super Snipat ! ça marche !

    J'espère que tu aura une réponse aussi rapide quand tu aura a ton tour une question....

    Merci a toi.
    Pilou

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Je t'en prie.
    Soit dit en passant, de manière générale, pour éviter les mauvaises surprises avec les REPLACE autant remplacer la chaîne remarquable la plus complète possible, en l'occurrence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE CONTACT1
    SET EMAIL = REPLACE (EMAIL,'@DESUNION.FR','@UNION.FR');
    Et si tu es amené à faire pas mal de SQL, tu trouveras beaucoup de réponses dans le tuto de SQLPro qui commence ici :
    http://sqlpro.developpez.com/cours/sqlaz/select/#L1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Oracle] Exécuter une fonction Pl sql oracle avec php
    Par rolinx dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/09/2011, 08h59
  2. Fonction Replace SQL Server 2008
    Par remi.journet dans le forum Développement
    Réponses: 4
    Dernier message: 21/06/2011, 07h20
  3. [Oracle] fonction pl/sql pour calcul pwd
    Par shaun_the_sheep dans le forum PL/SQL
    Réponses: 7
    Dernier message: 02/06/2006, 15h38
  4. [Oracle 9.1] Types de retour d'une fonction PL/SQL
    Par ftrifiro dans le forum PL/SQL
    Réponses: 8
    Dernier message: 12/10/2005, 16h54
  5. Equivalent de la fonction NVL sous oracle en SQL-server
    Par MorbidAngel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/09/2005, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo