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

Outils SQL Server Discussion :

sqlcmd export vers un fichier txt


Sujet :

Outils SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 50
    Points
    50
    Par défaut sqlcmd export vers un fichier txt
    Bonjour,

    Je souhaite faire un export vers un fichier text via sqlcmd:
    J'execute donc le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -E -Sinstance -o C:\rep\toto.txt -Q "set nocount on select * from test;" -h-1 -W
    Le probleme vient quand je veux lire ce fichier et utiliser les longeurs de chaque champs pour extraire ce que j'ai besoin, les tailles ne correspondent pas toujours:
    exemple: numeric (15, 0) me donne une longeur de 18

    Quand j'execute:
    Voila ce que j'obtiens:
    Type; Precision; longeur; ce que j'ai dans mon fichier;
    INT ; 10; 4 ; 4;
    Numeric (15,2) ; 15; 17; 18;
    NVARCHAR ; 1; 2; 2;

    Est ce que quelqu'un pourrais m'expliquer le fonctionement et savoir comment je dois calculer les longeurs reels

    Merci par avance

  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
    Citation Envoyé par snach Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -E -Sinstance -o C:\rep\toto.txt -Q "set nocount on select * from test;" -h-1 -W
    Remplace ton SELECT * par les colonnes que tu souhaites exportées,
    ceci pour avoir une idée claire sur l’ordonnancement des colonnes dans le fichier de sortie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -E -Sinstance -o C:\rep\toto.txt -Q "set nocount on select colonne1, colonne2, colonnex from test " -h-1 -W

    Citation Envoyé par snach Voir le message

    Voila ce que j'obtiens:
    Type; Precision; longeur; ce que j'ai dans mon fichier;

    Numeric (15,2) ; 15; 17; 18;

    Merci par avance
    Tu peux utiliser les fonctions LTRIM et RTRIM pour voir ...?

    Mais il me semble avec Numeric (15,2)

    Si on a par exemple : 123456789012345.12 ça fait 18 caractères en comptant le point (.) ? Non ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2007
    Messages : 125
    Points : 50
    Points
    50
    Par défaut
    L'ajout des colonnes ne changera rien.
    Pour les numerics il ne faut pas prendre en compte le (.)
    si tu as un NUMERIC(5,3) :
    --> 5 correspond à la taille totale et 3 correspond au nb de digit apres la virgule.

    Pour mon probleme Ce que je ne comprend pas, c'est pourquoi dans mon fichier txt je n'ai pas les meme longeur que dans la procedure stoquée .

    Meme en partant du principe que j'ai un espace par défaut lors de l'extract j'ai toujours un espace plus important entre mes champs

    ex:je 'ai un datetime suivi d'un numeric(20,0)

    resultat:
    2009-11-15 17:47:19.533......................0
    2010-11-15 17:47:19.533......................0
    2009-11-15 17:47:19.533......................0

    J'ai donc une longeur de 23 pour le champ datetime et une longeur de 22 (+1 correspondant à l'espace que j'ai supposé etre un séparateur).

    Si quelqu'un peut m'éclairer la dessus ?

  4. #4
    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
    Citation Envoyé par snach Voir le message
    J'ai donc une longeur de 23 pour le champ datetime et une longeur de 22 (+1 correspondant à l'espace que j'ai supposé etre un séparateur).
    Pour le nombre de caractères je pense qu'il faut prendre en compte le point (.) dans les décimaux
    Etienne ZINZINDOHOUE
    Billets-Articles

Discussions similaires

  1. exporter vers un fichier TXt
    Par faniette dans le forum C++Builder
    Réponses: 14
    Dernier message: 23/09/2013, 09h49
  2. Export vers un fichier txt avec transformation
    Par jlgodart dans le forum Développement
    Réponses: 2
    Dernier message: 09/02/2009, 21h54
  3. [VBA-E] Exporter une page Excel vers un Fichier Txt
    Par mamantins dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2006, 11h09
  4. Réponses: 10
    Dernier message: 08/06/2006, 08h57
  5. Export d'une table vers un fichier Txt
    Par Max30 dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 18h10

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