Bonjour,
Je cherche une commande sqlite qui me permettrait de mettre le résultat d'une commande select dans un fichier .txt?
Quelque chose comme spool par exemple?
Merci d'avance de vos réponses.
Bonjour,
Je cherche une commande sqlite qui me permettrait de mettre le résultat d'une commande select dans un fichier .txt?
Quelque chose comme spool par exemple?
Merci d'avance de vos réponses.
Bonjour,
Si tu utilises l'exécutable (sous Windows ou Linux) c'est très facile :
Voici par exemple comment on dump une table dans un fichier CSV facilement interprétable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part .output nomDuFichier.txt
On remarque au passage le ".output stdout" qui rétabli la sortie à l'écran, ainsi que le premier select qui permet d'obtenir une ligne avec les noms des colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 .mod tabs .outout matable.csv select "colonne1","colonne2"; select colonne1, colonne2 from maTable; .output stdout
Sinon, on peut également générer un document html avec :
On a encore la possibilité de générer des commandes sql INSERT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 .mod html .outout matable.html select "<html><head></head><body><table>"; select colonne1, colonne2 from maTable; select "</table></body></html>"; .output stdout
Pour terminer, voici la liste des commandes disponible :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .mod insert select colonne1, colonne2 from maTable; .output stdout
J'oubliais le meilleur pour la fin, dumper toute une base dans un gros fichier sql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 .mode MODE ?TABLE? Set output mode where MODE is one of: csv Comma-separated values column Left-aligned columns. (See .width) html HTML <table> code insert SQL insert statements for TABLE line One value per line list Values delimited by .separator string tabs Tab-separated values tcl TCL list elements
Bref, c'est facile et très utile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .output sauvegarde.sql .dump .output stdout
a+
Bonjour,
Cette commande fonctionne très bien quand je la lance dans sqlite:
Mais lancé dans un script shell, mon fichier est bien créé mais pas rempli.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 .output fichier.txt select * from matable; .output stdout
Bonjour,
Peux tu nous en dire plus : Linux ou Windows, (je pense à Linux)
et quel script shell ?
merci
a+
Je suis sur unix.
Voici le bout de code qui ne fonctionne pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 /usr/local/bin/sqlite3 test.db ".output fichier.txt" /usr/local/bin/sqlite3 test.db "select * from ma_table where status='NEW';"
Bonsoir,
Effectivement, il y a un problème : tu lances deux commandes séparées ; il n'y a pas de lien entre elles.
Pour que cela fonctionne, il faudrait que tu puisses écrire quelque chose comme:
Mais ce n'est pas possible, cette syntaxe provoquera une erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part /usr/LOCAL/bin/sqlite3 test.db ".output fichier.txt select * from ma_table where status='NEW';"
Par contre, si tu crées un fichier comme "instructions.sql" avec le script suivant :
Tu pourras alors l'appeler avec cette commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 .output fichier.txt select * from ma_table where status='NEW'; .output stdout .quit
C'est exactement comme cela que je procède sur Windows pour de nombreux scripts.
Code : Sélectionner tout - Visualiser dans une fenêtre à part /usr/LOCAL/bin/sqlite3 test.db ".read instructions.sql"
Bonne continuation,
a+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager