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

Développement SQL Server Discussion :

Troncature inopinée avec OPENQUERY


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 105
    Points : 72
    Points
    72
    Par défaut Troncature inopinée avec OPENQUERY
    Bonjour

    Je récupère des informations sur Active Directory depuis une procédure SQL sur SQL server 2008.
    Or pour certaines informations récupérées, le champ AdsPath devient très grand et peu être tronqué.

    Exemple avec la requête ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    SELECT AdsPath,LEN(AdsPath)
    FROM
    OPENQUERY(ServeurLieAD,
    'SELECT AdsPath
    FROM ''LDAP://OU=FFF,DC=intra,DC=CCC,DC=fr'' WHERE objectClass= ''group'' and CN >= ''Liste'' ')
    order by LEN(AdsPath) desc
    J'obtiens un certain nombre de lignes avec une longueur de 256 caractères, et effectivement AdsPath est tronqué.

    Si je transfère directement AdsPath dans une table temporaire (dont la colonne est dimensionnée à 600 caractères) avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    INSERT INTO dbo.Tempo_ListesDistrib(AdsPath)
    SELECT AdsPath
    FROM
    OPENQUERY(ServeurLieAD,
    'SELECT AdsPath
    FROM ''LDAP://OU=FFF,DC=intra,DC=CCC,DC=fr'' WHERE objectClass= ''group'' and CN >= ''Liste'' ')
    J'obtiens:
    Le fournisseur OLE DB 'ADSDSOObject' pour le serveur lié 'ServeurLieAD' a retourné des données tronquées pour la colonne '[ADSDSOObject].AdsPath'. La longueur réelle des données est 534 alors que celle des données tronquées est 512.
    Le fournisseur OLE DB 'ADSDSOObject' pour le serveur lié 'ServeurLieAD' a retourné des données tronquées pour la colonne '[ADSDSOObject].AdsPath'. La longueur réelle des données est 540 alors que celle des données tronquées est 512.
    Le fournisseur OLE DB 'ADSDSOObject' pour le serveur lié 'ServeurLieAD' a retourné des données tronquées pour la colonne '[ADSDSOObject].AdsPath'. La longueur réelle des données est 534 alors que celle des données tronquées est 512.


    Quelqu'un aurait-il une idée pour éviter cette troncature ?
    Il me faut absolument récupérer AdsPath complet car avec celui-ci je relance d'autres requête sur Active Directory pour obtenir des informations supplémentaires.

    Merci pour vos lumières

  2. #2
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Il y a des limitations pour requeter AD depuis SQL SERVER.

    Essaye ceci, on va voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE TMP (ADSPath VARCHAR(max)); 
     
    INSERT INTO TMP(ADSPath)
    SELECT AdsPath
    FROM
    OPENQUERY(ServeurLieAD,
    'SELECT AdsPath
    FROM ''LDAP://OU=FFF,DC=intra,DC=CCC,DC=fr'' WHERE objectClass= ''group'' and CN >= ''Liste'' ') 
     
    SELECT ADSPath FROM TMP
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 105
    Points : 72
    Points
    72
    Par défaut réponse sur le test en varchar(max)
    Le résultat est identique.


Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2015, 17h16
  2. [2012] Merge avec openquery
    Par FloFlo12 dans le forum Développement
    Réponses: 4
    Dernier message: 23/04/2014, 11h31
  3. delete openquery avec jointure
    Par sybcat dans le forum Développement
    Réponses: 1
    Dernier message: 21/06/2013, 18h55
  4. Delete OPENQUERY avec jointure
    Par sybcat dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/06/2013, 17h14
  5. Troncature de fichier avec notepad++
    Par Buck61 dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 29/10/2010, 12h03

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