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 :

pb conversion chaine de caractere en uniqueidentifier


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Points : 32
    Points
    32
    Par défaut pb conversion chaine de caractere en uniqueidentifier
    Bonjour à tous,

    voila, j'ai un petit souci.
    Je dois copier une base de donnée SAGE dans une autre base de donnée Microsoft possédant des attributs différents bien sure.

    Pour cela, j'aimerais à partir d'une chaine de caractère corresspondant à un nom, par exemple : "Dupont" obtenir l'équivalent de type 'uniqueidentifier' pour pouvoir effectuer une insertion dans la base Microsoft.

    J'ai déjà essayer avec un 'CONVERT' ou avec un 'CAST' mais sans résultat.
    J'obtiens l'erreur suivante :

    "Erreur de syntaxe lors de la conversion d'une chaîne de caractères en uniqueidentifier."

    Si quelqu'un peut 'aider je lui en serait trés reconnaissant.
    Merci

    voila mon code:

    DECLARE @contact varchar(35), @conv_contact uniqueidentifier
    SET @contact='Mr dupont'
    SET @conv_contact = CONVERT(uniqueidentifier, @contact)

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 865
    Points : 53 018
    Points
    53 018
    Billets dans le blog
    6
    Par défaut
    Un type uniqueidentifier est généré de manière aléatoire il ne eut donc y avoir de "conversion".

    Précisez quelle est votre pensée en agissant ainsi ?

    A

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    merci d em'avoir répondu!

    En fait mon but principale est de copier les données d'une base(SAGE) dans une autre (MICROSOFT CRM)
    L'un des champs à copier dans ma premiere base est de type varchar.
    Dans ma deuxieme base le champ coresspondant n'est pas de type varchar mais de type unique identifier.
    Je pensait donc être obligé d'effectuer une conversion pour que la copie fonctionne.
    Mais si j'ai bien compri une donnée de type uniqueidentifier ne peut etre converti!
    Dans ce cas je suis perdu et je ne vois pa comment faire...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    Quelqu'un pourait m'aider?

  5. #5
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    ben il faut créer aussi en cible une colonne en varchar et oublier le uniqueidentifier.

  6. #6
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    Si c'est une base pas trop modifiable car CRM:
    Si le base cible a forcément comme PK des uniqueidentifier, puisque c'est une base d'un logiciel de CRM, il faut faire en sorte de générer automatiquement le uniqueidentifier de la PK à côté de la clé unique portant sur ce qui était la clé primaire dans la base source.

    Attention aussi aux clés d'intégrité référentielles. Il faudra d'abord remplir les tables de références puis les tables dépendantes. Il faudra sans doute rajouter des intégrité référentielles portant sur ces nouveaux champs.

    exemple base source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE DEPARTEMENT(id_dept varchar(2) not null, nom_dept varchar(20));
    ALTER TABLE DEPARTEMENT ADD CONSTRAINT pk_dept PRIMARY KEY (id_dept);
    CREATE TABLE VILLE (id_ville varchar(2) not null ,nom_ville  varchar(20) ,id_dept varchar(2) );
    ALTER TABLE VILLE ADD CONSTRAINT pk_ville PRIMARY KEY (id_ville);
    ALTER TABLE VILLE ADD FOREIGN KEY   (id_dept) REFERENCES DEPARTEMENT(id_dept);
    exemple base cible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE DEPARTEMENT_CIBLE(guid_dept uniqueidentifier    not null DEFAULT NEWID(),
    id_dept varchar(2) not null, nom_dept varchar(20));
    ALTER TABLE DEPARTEMENT_CIBLE ADD CONSTRAINT pk_dept_cible PRIMARY KEY (guid_dept);
    ALTER TABLE DEPARTEMENT_CIBLE ADD CONSTRAINT uk_dept_cible UNIQUE  (id_dept);
     
    CREATE TABLE VILLE_CIBLE (guid_ville uniqueidentifier    not null DEFAULT NEWID(),
    id_ville varchar(2) not null ,nom_ville  varchar(20) ,id_dept varchar(2) );
    ALTER TABLE VILLE_CIBLE ADD CONSTRAINT pk_ville_cible PRIMARY KEY (guid_ville);
    ALTER TABLE VILLE_CIBLE ADD CONSTRAINT uk_ville_cible UNIQUE  (id_ville);
    ALTER TABLE VILLE_CIBLE ADD FOREIGN KEY   (id_dept) REFERENCES DEPARTEMENT_CIBLE(id_dept);
    Il faudra donc lancer une requête du style (pour simplifier l'exemple je pars du principe que les tables sont dans la même base):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO DEPARTEMENT_CIBLE
    (id_dept,nom_dept)
    SELECT id_dept,nom_dept FROM DEPARTEMENT
    sachant que le guid sera rempli automatiquement grâce à newid(). Et ensuite de la même façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO VILLE_CIBLE
    (id_ville,nom_ville,id_dept)
    SELECT id_ville,nom_ville,id_dept FROM VILLE_CIBLE

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 61
    Points : 32
    Points
    32
    Par défaut
    merci beaucoup pour ta reponse très complète!
    Je vais essayer de sivre tes conseils.
    Je vais voir si j'y arrive en tous cas encore merci!

Discussions similaires

  1. Conversion chaine de caractere en entier
    Par Adevelop dans le forum Fortran
    Réponses: 1
    Dernier message: 27/10/2010, 22h11
  2. [XL-2007] Conversion chaine de caractere en float
    Par toinou62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/05/2009, 15h28
  3. [T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Sybase
    Réponses: 1
    Dernier message: 21/09/2006, 08h28
  4. [SYBASE][T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/09/2006, 16h28
  5. [POO] conversion chaine de caractere en objet
    Par seb_fou dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/02/2005, 09h41

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