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

MS SQL Server Discussion :

Job (travail) en SQLServer


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut Job (travail) en SQLServer
    Bonjour j'ai une table "matable" qui a un champ "url".
    Dans le champ "url" j'ai des urls qui peuvent être de différentes formes comme:
    www.toto.com
    www.toto.uk.co
    www.toto.fr
    www.toto.net

    Dans SQl Server je voudrai faire un job (travail) qui enleve les www. et remplace dynamiquement les (.com .uk.co .fr .net) trouvés dans la table par .soso.com
    update matable set url = ...
    Pouvez-vous m'aider svp?
    merci.

  2. #2

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut
    Repace ne suffit pas, à mon avis il faut un truc dynamique...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut
    L'idée,je pense, c'est de détecter le premier (.) après avoir enlevé le (www.) ou de repérer le deuxième (.) avant d'enlever le (www.).
    Merci de votre attention.

  5. #5
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    A voir si cela vous convient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE dbo.maTable
    url = LEFT(REPLACE(url,'www.',''), CHARINDEX('.',REPLACE(url,'www.',''))) + 'soso.com'
    ++

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut
    Ca marche nikel.
    Merci bien.
    maintenant pour ne pas rester bete (lol), je comprends ce que fait LEFT(REPLACE(url,'www.','') mais je ne comprends pas trop le : CHARINDEX('.',REPLACE(url,'www.',''))).
    Ca me serait d'une grande utilité si tu peux me l'explique. Sinon m'expliquer la totalité ne fera pas de mal.
    Merci encore.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut
    Je viens de me rendre d'un autre problème.
    Il se trouve que je peux avoir un sous-domaine donc je peux avoir un url du type: www.toto.tata.uk.co ou www.toto.tata.com ou www.toto.com
    Donc ca devient un peu plus subtile.

  8. #8
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    maintenant pour ne pas rester bete (lol)
    --> C'est le signe d'un fou qu'avoir honte d'apprendre

    Tout d'abord la fonction REPLACE permet de supprimer le motif "www." de la chaîne de caractère. On a donc, en reprenant une de vos données, www.toto.uk.co qui devient toto.uk.co.

    Ensuite il faut récupérer la position du premier point pour pouvoir supprimer ce qu'il y a après. Dans mon cas on récupère la position du 1er point et on ne garde que la partie avant ... cela revient au même. C'est ce que fait la fonction CHARINDEX : CHARINDEX('.',REPLACE(url,'www.','')). La fonction retourne la position 5.

    Maintenant il suffit de récupérer la partie de gauche (et donc de supprimer la partie de droite) après le point avec la fonction LEFT.
    LEFT(REPLACE(url,'www.',''), CHARINDEX('.',REPLACE(url,'www.',''))) qui donne toto.

    Enfin il faut ajouter le motif 'soso.com' :

    LEFT(REPLACE(url,'www.',''), CHARINDEX('.',REPLACE(url,'www.',''))) + 'soso.com' qui donne toto.soso.com

    ++

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut
    Pour résoudre mon problème, je pense qu'il faut utiliser un truc du genre:
    CHARINDEX('.com',REPLACE(url,'www.',''))), mais c'est insuffisant car je résoudrai pas les .fr,.net,.uk et autre.
    Est-ce que l'idée ne serait pas de faire une liste des extensions des url et de les mettre dans le charindex?
    Merci.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut
    Sinon avec ce que tu m'as donné, comment je peux remplacer ce qui se trouve à droite du premier (.) à partir de la droite par (.soso.com)?(pour simplifier)
    Exemple: www.toto.tata.com par toto.tata.soso.com

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 37
    Par défaut
    J'ai trouvé une combine, ca pourrait servir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    UPDATE matable
    SET url= 
        ( CASE
             WHEN url like ('%.com%') THEN 
    		LEFT(REPLACE(url,'www.',''), CHARINDEX('.com',REPLACE(url,'www.',''))) + 'soso.com' 
            WHEN url like ('%.net%') THEN 
    		LEFT(REPLACE(url,'www.',''), CHARINDEX('.net',REPLACE(url,'www.',''))) + 'soso.com' 
    		WHEN url like ('%.fr%') THEN 
    		LEFT(REPLACE(url,'www.',''), CHARINDEX('.fr',REPLACE(url,'www.',''))) + 'soso.com'        
    END
        )

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

Discussions similaires

  1. Quel job et société pour travailler de chez soi?
    Par Bondin dans le forum Emploi
    Réponses: 11
    Dernier message: 10/10/2007, 11h19
  2. [SQLSERVER 2005] Planification d'un job
    Par alpachico dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/04/2007, 11h20
  3. SQLSERVER et groupe de Travail, connexion
    Par grizzmine dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/01/2007, 15h11
  4. Réponses: 1
    Dernier message: 29/12/2006, 10h19

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