Comment puis-je stocker le résultat d'une requête SQL dans un fichier CSV à l'aide de l'Écureuil?
La Version 3.0.3. C'est un assez grand résultat, près de 3 millions de lignes.
- Quel type de base de données est-il? Certaines bases de données ont déjà des capacités d'écriture pour les fichiers de sortie.
- il est postgres sql
- je sais que je peux le faire à l'aide de la cmdline, mais id aiment être en mesure de le faire à partir de l'interface graphique
Vous devez vous connecter pour publier un commentaire.
Martin a assez bien de ce droit.
La TL/DR version, c'est que vous avez besoin de la "SQLScripts" plugin (qui est l'un des "standard" plugins), et puis vous pouvez sélectionner ces options de menu:
Session
>Scripts
>Store Result of SQL in File
Je suis à la recherche de la version 3.4. Je ne sais pas quand cette fonctionnalité a été introduite, mais vous pouvez avoir besoin de mise à niveau si vous n'avez pas et ne peut pas installer le SQLScripts plugin.
Instructions pour installer un nouveau plugin peut être trouvé à: http://squirrel-sql.sourceforge.net/user-manual/quick_start.html#plugins
Mais si vous effectuez une nouvelle installation de l'Écureuil, vous pouvez simplement sélectionner le "SQLScripts" plugin lors de l'installation.
Voici la version longue:
Exécuter la requête
Se connecter à la base de données. Cliquez sur le
SQL
onglet. Entrez votre requête. Frapper le bouton exécuter (ouCtrl-Enter
).Vous devriez voir les 100 premières lignes dans la zone de résultats dans la moitié inférieure de la fenêtre (en fonction de la façon dont vous avez configuré le
Limit Rows
option).Exporter la plein résultats
Ouvrir le
Session
menu. Sélectionnez laScripts
élément (presque en bas de cette longue menu). SélectionnezStore Result of SQL in File
.Cette commande ouvre une boîte de dialogue où vous pouvez configurer votre exportation. Assurez-vous de vérifier
Export the complete result set
pour tout.Je n'ai pas essayé avec un 3 millions ligne jeu de résultats, mais j'ai remarqué que l'Écureuil semble flux de données sur le disque (plutôt que de lire tout cela en mémoire avant d'écrire), donc je ne vois pas pourquoi ça ne marcherait pas avec un arbitrairement grand de fichier.
Notez que vous pouvez exporter directement vers un fichier en utilisant
Ctrl-T
d'invoquer les outils contextuel et en sélectionnantsql2file
.J'ai trouvé un moyen de faire cela, il y a un joli support pour cela dans d'Écureuil. Exécuter le SQL select (100 limite de ligne sera ignoré par l'exportateur, ne vous inquiétez pas). Puis, dans le menu principal, choisissez Session, Scripts, Stocker le Résultat de SQL dans le Fichier. Cette fonctionnalité ne peut pas être présent par défaut, il peut être présent dans certains standard plugin (mais il n'est pas installé par défaut). Je ne sais pas quel plugin si.
Exécuter à partir de votre interface:
COPY (SELECT * FROM some_table) TO '/some/path/some_table.csv' WITH CSV HEADER
Je voulais aussi exporter les résultats de la requête SQL dans un fichier CSV à l'aide de SquirrelSQL. Cependant, selon modifications de fichiers il semble que cette fonctionnalité n'est pas prise en charge, même dans SquirrelSql 3.3.0.
Jusqu'à présent j'ai été en mesure d'exporter uniquement les données affichées dans les résultats de la table " de la requête SQL par un clic droit sur la table > Exporter au format CSV. La taille de la table est par défaut de 100 lignes et est donc à l'export CSV. Vous pouvez changer la taille de la table dans les Propriétés de Session > SQL > Limiter les lignes. E. g. modifier la taille de 10000 et à l'exportation, contiendra également 10000 lignes. La question est, comment SquirrelSql affaire avec vraiment de grands ensembles de résultats (en millions de lignes)...
À L'Aide D'Écureuil 3.5.0
La "Boutique SQL résultat en tant que fichier" est idéal si vous ne disposez que d'une simple requête Select. Plus complexe avec des paramètres ne fonctionnent pas.
Même en essayant de l'exportation à la suite de 600 000+ lignes d'un fichier CSV peut également échouer.