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] Encodage et fichiers de sortie


Sujet :

Outils SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [SQLCMD] Encodage et fichiers de sortie
    Bonjour,

    J'ai un problème avec l'utilisation de SQLCMD, appelé sur une seule ligne depuis la console.

    Pour que mes données résultats soient correctement encodées, je n'ai trouvé comme solution que d'utiliser l'option -f1252 (codepage correspondant à ma base de données et je n'ai pas la main dessus).

    Seulement voilà, cette option -f n'est utilisée que si l'option -o est utilisée pour indiquer le fichier de sortie (ou du moins j'en ai l'impression). Or dans ce cas, la sortie standard et la sortie d'erreur sont regroupées dans le fichier indiqué par -o.

    Mon problème est qu'il me faut pouvoir distinguer, après l'exécution, ma sortie standard de ma sortie d'erreur. Effectivement dans certains cas - par exemple le cas où l'appel tombe en timeout -, SQLCMD ne positionne pas l'ERRORLEVEL et je ne détecte pas qu'il y a eu un problème. Pourtant les données ne sont pas valides du tout : la sortie contient juste le message indiquant le timeout atteint.

    Arrivée là, j'ai le constat suivant :
    - Soit j'utilise -f et -o et mes données sont correctement encodées, mais je ne détecte pas les timeout (problème bloquant dans mon cas)
    - Soit j'utilise >1 et >2 pour rediriger les sorties, je peux détecter les erreurs en analysant la sortie d'erreur, mais mes données sont mal encodées... (bloquant aussi)

    Est-ce que quelqu'un aurait une idée ? Ça fait plusieurs fois que je cherche et je ne trouve pas de solution
    Merci d'avance !

  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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    SQLcmd n'est pas fait pour faire de l'export de données. Pour cela vous devez utiliser bcp.exe qui est l'utilitaire d'import export en ligne de commande et vous permet de piloter le mode d'encodage (wildchar, codepage, raw..).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour la réponse.

    Dans mon contexte particulier il m'est difficile d'utiliser BCP pour l'opération que je veux effectuer... Mais dans le cas où je pourrais, est-ce que BCP peut prendre en paramètre un chemin de fichier dans lequel il trouvera le script SQL permettant de récolter les données à exporter ? (rien vu de tel dans les options, mais comme je n'ai pas tout essayé, j'ai peut être loupé quelque chose)

    Ma situation est la suivante : Je me connecte (via SQLCMD pour l'instant) sur une instance SQL, en utilisant un fichier contant un script SQL pour calculer les données à retourner. Il ne m'est pas possible de stocker des données sur cette instance (pour les récupérer par exemple avec un export BCP par la suite). Le calcul et l'export doivent donc se faire en une seule opération.

    Merci encore pour la réactivité

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    je ne voit rien qui empêche d'utiliser bcp qui, encore une fois, est fait pour cela !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Par défaut
    Bonjour

    Désolé pour ma curiosité mais qu'est-ce qui t'empêche de lancer, par ex, un sqlcmd pour créer une vue correspondant à ta requête et de lancer le bcp à la suite (option queryout) pour exporter ces données ..... ou est-ce le seul défi technique ?

    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Aucun problème de technique, j'aimerai bien le faire, mais c'est ai boulot et je n'ai l'accès qu'en lecture, je n'ai pas le droit de créer quoi que ce soit sur l'instance SQL...
    (eh oui, gros système, des tas de règles en place, mais on te demandera quand même toujours de trouver une autre solution, malgré tous les bâtons qu'on te met dans les roues )

    EDIT: Ceci dit, SQLPro, tu ne réponds pas à ma question : est-ce que BCP peut prendre un fichier en paramètre qui contient un script (assez long) de calcul pour les données à exporter ?

Discussions similaires

  1. [Free Pascal] Encodage de fichier en sortie
    Par joreveur dans le forum Free Pascal
    Réponses: 5
    Dernier message: 12/11/2014, 10h40
  2. encodage utf8 fichier sortie
    Par knebhi dans le forum Langage
    Réponses: 9
    Dernier message: 06/02/2010, 19h36
  3. Spécifier le format d'encodage d'un fichier de sortie
    Par strat0 dans le forum VBScript
    Réponses: 5
    Dernier message: 29/12/2006, 15h50
  4. [Eclipse 2.1] Encodage des fichiers pour un projet
    Par _-Sky-_ dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 26/05/2005, 22h26
  5. Réponses: 4
    Dernier message: 22/11/2004, 19h29

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