web-dev-qa-db-fra.com

Écrire la sortie de sqlplus dans un fichier

Utilisation de sqlplus.exe Je cherche un moyen d'écrire une sortie sqlplus dans un fichier.

Est-ce que de toute façon je peux le faire, actuellement la sortie est écrite uniquement sur la console.

47
user458348

Vous pouvez utiliser la commande SPOOL pour écrire les informations dans un fichier.

Avant d'exécuter une commande, tapez ce qui suit:

SPOOL <output file path>

Toutes les commandes suivantes seront écrites dans le fichier de sortie.

Pour arrêter le type d'écriture en sortie de commande

SPOOL OFF
59
user2276818

Notez également que la sortie SPOOL est régie par quelques paramètres SQLPlus:

  • SET LINESIZE nn - largeur maximale de la ligne; si la sortie est plus longue, le contenu de chaque ligne de résultat sera renvoyé à la ligne.

  • SET TRIMSPOOL OFF|ON - si défini OFF (valeur par défaut), chaque ligne de sortie sera complétée à LINESIZE. Si défini ON, chaque ligne en sortie sera tronquée.

  • SET PAGESIZE nn - nombre de lignes à afficher pour chaque répétition de l'en-tête. Si défini à zéro, aucun en-tête n'est généré; juste le détail.

Ce sont les gros problèmes, mais il y en a d'autres à considérer si vous voulez juste la sortie sans tout le bavardage de SQLPlus.

31
Ed Gibbs

Assurez-vous que vous avez accès au répertoire que vous essayez de spouler. J'ai essayé de spool to root et le fichier n'a pas été créé (par exemple c:\test.txt). Vous pouvez vérifier où vous spoulez en lançant la commande spool.

2
Gujju

juste pour enregistrer mes propres déductions de tout cela (pour enregistrer la sortie de DBMS_OUTPUT sur le client, à l’aide de sqlplus):

  • peu importe si j'utilise Toad/with polling ou sqlplus, pour un script long avec des commandes occasionnelles dbms_output.put_line, j'obtiendra le résultat à la fin de l'exécution du script
  • activer la sortie du serveur; et dbms_output.enable (); devrait être présent dans le script
  • enregistrer la commande SPOOL en sortie ne suffisait pas pour obtenir les lignes DBMS_OUTPUT imprimées dans un fichier - il fallait utiliser la redirection> windows CMD habituelle. les mots de passe, etc. peuvent être attribués à l'invite vide après avoir appelé sqlplus. aussi les directives "/" et la "sortie;" La commande doit être placée soit dans le script, soit donnée interactivement comme mot de passe ci-dessus (sauf indication contraire lors de l'appel de sqlplus).
0
hello_earth