web-dev-qa-db-fra.com

Exporter les résultats d'une requête dans le développeur SQL sans avoir à exécuter la requête deux fois

Est-il possible d'exporter les résultats d'une requête dans Oracle SQL Developer sans avoir à exécuter la requête deux fois? Exécuter une requête SQL dans une feuille de calcul, puis cliquer avec le bouton droit sur la fenêtre Ensemble de résultats -> Exporter les données -> Texte exécutera la requête une deuxième fois.

5
Franck Dernoncourt

Il existe des commentaires/"astuces" spécifiques à SQL Developer. Par exemple, si vous exécutez ce qui suit comme un script (F5) et non comme une instruction (Ctrl-Entrée):

select /*csv*/ * from table;

Vous obtiendrez déjà les résultats au format CSV pour la première fois. Vous pouvez même spouler la sortie comme dans SQL * Plus. Vous pouvez donc simplement exécuter le bloc de code ci-dessous en tant que script (sélectionner les lignes et F5) et obtenir un CSV directement en une seule passe:

spool C:\Users\XYZ\Desktop\my.csv
select /*csv*/ * from table;
spool off

À partir de la version 4.1, vous n'avez même pas besoin d'utiliser le commentaire/"indice" ci-dessus. Vous pouvez simplement:

SET SQLFORMAT csv

Exécutez ensuite votre requête en tant que script.

D'autres options ici: http://www.thatjeffsmith.com/archive/2012/05/formatting-query-results-to-csv-in-Oracle-sql-developer/

7
Balazs Papp

Oui, mais c'est cher. Si vous récupérez toutes les lignes vers le client, l'exportation utilisera ce jeu d'enregistrements pour l'exportation.

S'il s'agit d'une requête longue de quelques lignes, ce n'est pas grave. S'il s'agit d'une requête longue de millions + d'enregistrements, vous pouvez épuiser la JVM ou bouleverser le gars/gal du réseau.

J'en parle plus ici .

TL/DR;

Faites défiler jusqu'à la fin de l'ensemble de données dans la grille, une fois que toutes les lignes sont là (plus à récupérer), si vous effectuez une exportation, les données proviendront de là par rapport à l'exécution de la requête à nouveau.

4
thatjeffsmith

Utilisez sqlplus. Développez les scripts dans Sql Developer puis chargez-les avec sqlplus.

0
Gerard