Oracle/SQL PLUS: Comment spool un journal et écrire de façon intermittente tout au long de script
Trouver comment bobine à un fichier a été assez facile. J'espère qu'il y a une option pour écrire dans le fichier texte après chaque commande est écrit. Je ne suis pas sûr de la façon de communiquer l'état d'avancement d'un long script à d'autres personnes de mon équipe. La solution que nous avons été pour écrire un fichier journal sur un lecteur réseau, que le script s'exécute ils seraient en mesure de la suivre.
Toutefois, cela semble être la seule à écrire la sortie dans le fichier après le spool off; commande à la fin du fichier.
Est-il possible de réaliser ce que nous essayons de faire, soit avec bobinage, un fichier journal ou une autre méthode?
Voici le code que j'ai jusqu'ici.
set timing on;
set echo on;
column date_column new_value today_var
select to_char(current_timestamp, 'yyyymmdd_HH24_MI') as date_column
from dual
/
select current_timestamp from dual;
SPOOL 'Z:\log\KPI\secondary_reporting_&today_var..log'
... lots of stuff...
spool off;
>> je ne suis pas sûr de la façon de communiquer l'état d'avancement d'un long script à d'autres personnes de mon équipe << utilisez v$longops d'écrire des messages d'état affiche la progression
OriginalL'auteur justin cress | 2015-12-21
Vous devez vous connecter pour publier un commentaire.
Deux méthodes viennent à l'esprit, selon ce que sont vos "trucs" est.
1) Si votre code a beaucoup d'instructions SQL et PL/SQL blocs, puis vous pouvez à plusieurs reprises bobine pour un peu de temps. Utiliser le
spool <filename> append
déclaration de ce.2) Si vous avez depuis longtemps l'exécution de procédures PL/SQL utiliser le
UTL_FILE
paquet. Voir https://docs.oracle.com/html/B14258_02/u_file.htm pour plus d'informations. Cela va nécessiter un peu de configuration et des privilèges d'administrateur dans la base de données configurer un répertoire où l'écriture est autorisée.OriginalL'auteur fork2execve
Autant que je sache, il n'y a aucun moyen de contrôle lors de la file d'attente de sortie est écrite dans un fichier. Un moyen de contourner cela, cependant, pourrait être de renoncer à bobinage, tout à fait et juste rediriger la sortie:
OriginalL'auteur Mureinik