Comment faire écho au texte pendant L'exécution du script SQL dans SQLPLUS
J'ai un fichier batch qui exécute un script SQL dans sqlplus et envoie la sortie à un fichier journal:
Sqlplus utilisateur/pw RowCount.log
Mon fichier journal contient ceci:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
SQL> SQL>
COUNT(*)
----------
0
SQL>
COUNT(*)
----------
0
Etc. mais c'est plusieurs milliers de lignes de sortie et donc difficile de déterminer quels résultats appartiennent à quelle déclaration.
Je voudrais ajouter un peu de formatage à la sortie, afin que je puisse discerner ce qui s'est passé. Soit un écho de l'instruction exécutée ou manuellement insérer des instructions "echo" dans le script serait bien. Idéalement, cela ressemblerait à ceci:
SQL> select(*) from TableA;
COUNT(*)
----------
0
SQL> select(*) from TableB;
COUNT(*)
----------
0
3 réponses
, Vous pouvez utiliser SET ECHO ON
au début de votre script pour y parvenir, cependant, vous devez spécifier votre script à l'aide de @
au lieu de <
(aussi dû ajouter EXIT
à la fin):
Test.sql
SET ECHO ON
SELECT COUNT(1) FROM dual;
SELECT COUNT(1) FROM (SELECT 1 FROM dual UNION SELECT 2 FROM dual);
EXIT
Terminal
sqlplus hr/oracle@orcl @/tmp/test.sql > /tmp/test.log
Test.log
SQL> SQL> SELECT COUNT(1) FROM dual; COUNT(1) ---------- 1 SQL> SQL> SELECT COUNT(1) FROM (SELECT 1 FROM dual UNION SELECT 2 FROM dual); COUNT(1) ---------- 2 SQL> SQL> EXIT
La commande prompt fera écho au texte à la sortie:
prompt A useful comment.
select(*) from TableA;
S'affiche comme suit:
SQL> A useful comment.
SQL>
COUNT(*)
----------
0
Vous pouvez changer le nom de la colonne, donc au lieu de "COUNT(*)" vous auriez quelque chose de significatif. Vous devrez mettre à jour votre "RowCount.SQL " script pour cela.
Par exemple:
SQL> select count(*) as RecordCountFromTableOne from TableOne;
Sera affiché comme:
RecordCountFromTableOne
-----------------------
0
Si vous voulez avoir un espace dans le titre, vous devez l'entourer de guillemets
SQL> select count(*) as "Record Count From Table One" from TableOne;
Sera affiché comme:
Record Count From Table One
---------------------------
0