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 :

Problème d'export de requête vers fichier txt [2017]


Sujet :

Développement SQL Server

  1. #1
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 986
    Points : 766
    Points
    766
    Par défaut Problème d'export de requête vers fichier txt
    Bonjour à Toutes et Tous,

    Malgré mes recherches, je ne trouve pas la manière d'exporter le résultat d'une requête SQL vers un fichier txt.
    Bien sur, il y a l'assistant qui le fait très bien, mais j'ai besoin que cela se fasse en programmation (mise à jour automatique de données).

    J'ai essayé le commande "SQLCMD", mais cela me retourne l'erreur que SQL server ne supporte pas la commande.
    Merci pour votre soutien.
    Bien à vous

  2. #2
    Membre expérimenté Avatar de AaâÂäÄàAaâÂäÄàAaâÂäÄ
    Homme Profil pro
    db@
    Inscrit en
    Septembre 2021
    Messages
    533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 533
    Points : 1 562
    Points
    1 562
    Par défaut
    il y a la commande bcp mais comme sqlcmd, ce sont des commandes dos à lancer depuis une fenêtre cmd.
    Nom : bcp.png
Affichages : 96
Taille : 33,7 Ko

    On peut aussi faire ça par powershell

  3. #3
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 986
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Merci beaucoup pour votre réponse, je comprends le fait de la commande sous DOS, mais cela ne règle pas mon soucis d'exporter le résultat de ma requête.
    Bien à vous

  4. #4
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 986
    Points : 766
    Points
    766
    Par défaut
    Je vais finalement passer par visual studio pour résoudre mon soucis
    Merci

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 938
    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 938
    Points : 51 767
    Points
    51 767
    Billets dans le blog
    6
    Par défaut
    Extrait d'un de mes livres sur SQL Server :

    11 – Données externes et réplications de données

    L’utilitaire en ligne de commande bcp.exe permet de gérer des imports exports de données via des fichiers et la commande BULK INSERT permet de les insérer.
    Les serveurs liés, tout comme les fonctions « OPEN… » permettent de manipuler des données distantes venant de différentes sources.
    Enfin, Polybase permet de virtualiser des données de sources externes telles que Oracle, MongoDB, Teradata, Azure et d’autres sources via ODBC. Nous n’étudierons pas ce dernier point qui est très spécifique.
    La réplication des données (à ne pas confondre avec la haute disponibilité) concerna la réplications d’informations (certaines lignes et certaines, colonnes de certaines tables) d’une base vers une autre d’une autre instance, les bases n’ayant pas forcément la même structure.

    11.1 – Imports/Exports avec bcp.exe

    Cet utilitaire en ligne de commande permet de générer des fichiers d’export à partir de tables ou de vues SQL Server ou importer des données depuis des fichiers.

    La syntaxe de cet outil est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    bcp { <nom_de_table_ou_vue> | "requête_SELECT" }
        {in fichier_à_importer | [ out | queryout ] fichier_pour_export | format nul }
        [ -S server_name[\instance_name] ]
        { -T | -U login_id -P password }
    Pour la connexion :
    -S : indique le nom d’instance soit par défaut (facultatif), soit nommée (obligatoire)
    -T : connexion via compte système (approuvée)
    -U – P : connexion SQL avec nom du compte et mot de passe

    NOTA : queryout est nécessaire lorsque l’export concerne une requête, sinon utilisez out.

    Pour l’exécution immédiate :
    -c Copie avec caractères ASCI char, utilisant \t (tabulation) et \r\n (retour chariot, nouvelle ligne) comme séparateurs
    -n Copie en faisant appel aux types de données par défaut des données natifs
    -N Copie en faisant appel aux types natifs (données non littérale) et UNICODE pour les littéraux
    -w Copie avec caractères Unicode nchar, utilisant \t (tabulation) et \r\n (retour chariot, nouvelle ligne) comme séparateurs

    En mode -n, -c, -w ou -N la commande est exécutée immédiatement. Sinon, l’invite de commande, va demander un par un l’ensemble des paramètres nécessaire à l’opération.

    Options complémentaires (tous les paramètres doivent être préfixé par le tiret « - » moins) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Paramètre	Description
    a	entier	Taille des paquets réseau entre 4 096 octets et 65 535
    b	entier	Taille du lot en nombre de lignes (incompatible avec -h "ROWS_PER_BATCH)
    C	ACP, OEM,  RAW, n°_page_de_code	Spécification de la page de code sinon ACP = Windows (ISO 1252), OEM = page par défaut, RAW = aucune conversion)
    d	chaine de car.	Nom de la base source ou cible
    e	chaine de car.	Nom et emplacement du fichier recueillant les erreurs
    E		Conserve des valeurs IDENTITY
    f	chaine de car.	Utilise un fichier de format en mode caractères ou XML pour la correspondance des zones
    F	Entier	Première ligne à prendre en compte
    h	"hint [,...n]"	Indicateur complémentaire (voir tableau ci-après)
    i	chaine de car.	Fichier des réponses à l’invite si mode interactif (-n, -c, -w ou -N non spécifié)
    k		Forçage du NULL si vide
    K	ReadOnly	En cas d’opération sur un réplica AlwaysOn en lecture
    l	entier	Délai de connexion avant annulation. Par défaut 15s. Réglable de 0 à 65534 (0 = infini)
    L	entier	Dernière ligne à prendre en compte
    m	entier	Nombre maximale d’erreurs avant annulation. Par défaut 10
    o	chaine de car.	Nom et emplacement d’un fichier recevant la sortie redirigée à partir de l’invite de commandes
    q		Active QUOTED_IDENTIFIERS pour le nom de la base dans la connexion entre bcp l’instance
    r	caractère	Terminateur de fin de ligne. Par défaut « \n »
    R		Utilise le format régional pour les devises, date et heure
    t	caractère	Terminateur de fin de champ. Par défaut « \t »
    v		Extrait le numéro de version de bcp.exe (100 = 2008/2008R2, 160 = 2022)
    V	entier	Utilise une version ancienne de bcp.exe (80 = 2000, 160 = 2022)
    x		Génère un fichier de format en XML au lieu de caractères.
    ATTENTION : tous les commutateurs paramétriques sont sensibles à la casse. D’autres options existent pour Azure.

    Indicateurs complémentaires :
    • ORDER(colonne [ ASC | DESC ] [ , ...n])
    • ROWS_PER_BATCH=n
    • KILOBYTES_PER_BATCH=n
    • TABLOCK
    • CHECK_CONSTRAINTS
    • FIRE_TRIGGERS
    Voir dans la définition des paramètres de, BULK INSERT, ci-après.

    Exemple 42 – Export d’une requête vers un fichier texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    bcp.exe "SELECT object_id, s.name as schema_name, o.name as object_name, type_desc 
             FROM sys.objects AS o 
                JOIN sys.schemas AS s 
                   ON o.schema_id = s.schema_id"
             queryout "C:\tmp\sql_data.txt" 
             -S "HPZ840FB\SQL2019FBIN2" -T -c
    A +

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

Discussions similaires

  1. [XL-2003] Export sélection filtrée vers fichier txt
    Par Markol dans le forum Excel
    Réponses: 6
    Dernier message: 26/04/2013, 12h32
  2. Exporter résultat requête vers Fichier Excel inexistant.
    Par Mykimix dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/11/2012, 15h26
  3. Export de table vers fichier txt
    Par cetir dans le forum SAS Base
    Réponses: 2
    Dernier message: 20/01/2011, 11h22
  4. Debutant : Export Feuille Excel vers fichier .txt
    Par mat75019 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/12/2008, 08h32
  5. [VBA] Export table access vers fichier.txt
    Par fabiolous dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/04/2007, 18h55

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