web-dev-qa-db-fra.com

Comment puis-je stocker le résultat d'une requête SQL dans un fichier CSV à l'aide de Squirrel?

Version 3.0.3. C'est un ensemble de résultats assez large, environ 3 millions de lignes.

19
alex

Martin a à peu près ce droit.

La version TL/DR indique que vous avez besoin du plug-in "SQLScripts" (qui est l'un des plug-ins "standard"). Vous pouvez ensuite sélectionner les options de menu suivantes: Session> Scripts> Store Result of SQL in File

Je regarde la version 3.4. Je ne sais pas quand cette fonctionnalité a été introduite, mais vous devrez peut-être mettre à niveau si vous n'avez pas et ne pouvez pas installer le plug-in SQLScripts.

Les instructions pour installer un nouveau plug-in sont disponibles à l’adresse: http://squirrel-sql.sourceforge.net/user-manual/quick_start.html#plugins

Mais si vous effectuez une nouvelle installation de Squirrel, vous pouvez simplement sélectionner le plug-in "SQLScripts" lors de l'installation.

Voici la version longue:


  1. Exécuter la requête

    Connectez-vous à la base de données. Cliquez sur l'onglet SQL. Entrez votre requête. Appuyez sur le bouton Exécuter (ou Ctrl-Enter).

    Vous devriez voir les 100 premières lignes ou plus dans la zone de résultats dans la moitié inférieure du volet (selon la configuration de l'option Limit Rows).

  2. Exporte les complets résultats

    Ouvrez le menu Session. Sélectionnez l'élément Scripts (presque au bas de ce long menu). Sélectionnez Store Result of SQL in File.

    Cela ouvre une boîte de dialogue dans laquelle vous pouvez configurer votre exportation. Assurez-vous de vérifier Export the complete result set pour tout obtenir.


Je n'ai pas essayé cela avec un ensemble de résultats de 3 millions de lignes, mais j'ai remarqué que Squirrel semble transférer les données sur disque (plutôt que de les lire toutes en mémoire avant de les écrire), je ne vois donc aucune raison pour que cela se produise. ne travaillez pas avec un fichier arbitrairement volumineux.

Notez que vous pouvez exporter directement vers un fichier en utilisant Ctrl-T pour appeler la fenêtre contextuelle des outils et en sélectionnant sql2file.

26
Rod

J'ai trouvé un moyen de faire cela, il y a un soutien de Nice pour cela dans Squirrel. Exécutez la sélection SQL (la limite de 100 lignes sera ignorée par l'exportateur, ne vous inquiétez pas). Ensuite, dans le menu principal, choisissez Session, Scripts, Store Result of SQL in File. Cette fonctionnalité peut ne pas être présente par défaut, elle peut être présente dans certains plugins standards (mais pas installée par défaut). Je ne sais pas quel plugin cependant.

5
Martin Vysny

Je voulais aussi exporter les résultats d'une requête SQL dans un fichier CSV à l'aide de SquirrelSQL. Cependant, selon changes file , il semble que cette fonctionnalité ne soit pas prise en charge, même dans SquirrelSql 3.3.0.

Jusqu'à présent, je n'ai pu exporter que les données affichées dans la "table de résultats" d'une requête SQL en faisant un clic droit sur la table> Exporter au format CSV. La taille de la table est par défaut de 100 lignes, de même que l'exportation CSV. Vous pouvez modifier la taille de la table dans Propriétés de la session> SQL> Limiter les lignes. Par exemple. changez la taille en 10000 et votre exportation contiendra également 10000 lignes. La question est de savoir comment SquirrelSql traitera de très grands ensembles de résultats (des millions de lignes) ...

3
Michal Vician

Courir depuis votre interface graphique:

COPY (SELECT * FROM some_table) TO '/some/path/some_table.csv' WITH CSV HEADER

3
thetaiko

Utilisation de Squirrel 3.5.0 Le "résultat SQL en tant que fichier" est idéal si vous n’avez qu’une simple requête de sélection. Un plus complexe avec des paramètres ne fonctionnera pas. Même essayer d'exporter un résultat de plus de 600 000 lignes dans un fichier CSV peut également échouer.

0
user2649863