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

Sybase Discussion :

Export table sybase dans csv


Sujet :

Sybase

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juillet 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 66
    Points : 49
    Points
    49
    Par défaut Export table sybase dans csv
    Bonjour,

    J'ai besoin de faire un export d'une requête Sybase dans un fichier csv.

    Avec ASE, j'ai testé la commande OUTPUT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT 
    convert(varchar(23),convert(varchar, ARTICLE.DATE,101)+' '+convert(varchar,ARTICLE.DATE,108)+':'+convert(char(3),DATEPART(ms,ARTICLE.DATE))), 
    ARTICLE.NA,
    FROM
     ARTICLE
    go
    OUTPUT TO 'C:\temp\article.csv' FORMAT ASCII DELIMITED BY ';' QUOTE OFF
    go
    J'ai un message d'erreur
    "incorrect syntax near OUTPUT"
    Comment dois je procéder ? avez vous d'autre possibilité ?
    Merci !!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Je ne connais pas la commande "OUTPUT" (en tout cas pour ASE).

    Pour faire un CSV il faut formatter les data "à la main" - les outils Sybase fournis ne le font pas automatiquement, à moins d'avoir un outil qui le fait déjà (e.g. SQLBrowser le fait - www.sqlbrowser.com).

    Le faire à la main donne qqch du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select '"' + c1 + '"' + ',' + .... from table ....
    On peut aussi utiliser un script perl, ou php, ou.... ce qui est plus facile d'usage...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 247
    Points : 473
    Points
    473
    Billets dans le blog
    1
    Par défaut
    J'utiliserais bcp avec l'option -c ( mode charactere ) et -t; pour spécifier le delimiteur de champs.
    Eventuellement il faudra echapper la valeur de ; avec \ ou en l'entourant de "".
    Il faut pour cela que les données soient definies dans une table 'en dur' ou par une vue qui les définie

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juillet 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 66
    Points : 49
    Points
    49
    Par défaut
    J'ai effectivement testé avec les délimiteurs dans la requête. Cela fonctionne "presque" correctement.
    Au delà du 6eme champ, il ajoute un saut de ligne....

    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
    function main
    {
    	isql -Usa -P -S<<nom du serveur>> -D<<nom de la base>> -b -o test_temp.csv << EOF
    	select  ARTICLE.POS_DT,";",
    	ARTICLE.DATE_POS,";",
    	ARTICLE.SECTION,";",
    	ARTICLE.URG,";",
    	ARTICLE.VISA,";",
    	ARTICLE.SOUS_POS,";",
    	ARTICLE.REQUAL_FONC,";"
    	from ARTICLE where NDT = 8
     
    go
    EOF
     
    sed "s/^ *//;s/ *$//;s/ \{1,\}//g" <test_temp.csv> test.csv
    rm -f test_temp.csv
     
    }
     
    main "$@"
    Comment puis-je éviter ce saut de ligne ?

    Merci

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    Utiliser l'option -w de isql (-w 1024 p.ex.).

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juillet 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 66
    Points : 49
    Points
    49
    Par défaut
    Merci Michael, c'est parfait.
    Reste un petit détail, à la fin de mon fichier, il me remonte

    (6rowsaffected)

    Est ce que j'ai la possibilité de supprimer ce message ?

    Il faudrait également remplacer si cela est possible la valeur NULL remontée par rien

    ;NULL; > ;;

    Merci

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Points : 1 828
    Points
    1 828
    Par défaut
    avant d'exécuter la query.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juillet 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 66
    Points : 49
    Points
    49
    Par défaut
    J'ai toujours mon problème de valeur NULL a remplacer car il plante lors de l'import.
    Le champ de destination est de type char(3)...

    Petit à petit l'oiseau fait son nid

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juillet 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juillet 2002
    Messages : 66
    Points : 49
    Points
    49
    Par défaut
    C'est ok j'ai trouvé la solution j'ai modifié ma commande sed :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed "s/^ *//;s/ *$//;s/ \{1,\}//g;s/NULL//" <test_temp.csv> test.csv
    Merci pour tout

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

Discussions similaires

  1. [abap] exporter table interne en CSV dans DIR_TEMP
    Par magret2canard dans le forum SAP
    Réponses: 4
    Dernier message: 16/03/2015, 12h13
  2. Export table access vers csv
    Par sphinx18 dans le forum IHM
    Réponses: 18
    Dernier message: 05/12/2012, 15h05
  3. Exporter table SQL dans un fichier CSV
    Par tuxmat dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 11/06/2008, 22h46
  4. Problème exportation table Access dans Excel
    Par Thiazung dans le forum Access
    Réponses: 5
    Dernier message: 02/10/2006, 17h12
  5. Export resultat requete dans CSV et XLS ?
    Par wormseric dans le forum Oracle
    Réponses: 14
    Dernier message: 20/09/2006, 16h36

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