2010-01-20 5 views
9

Je bobiné un fichier avant d'exécuter la commande ci-dessous et a obtenu la sortie comme celui-ci,Effacer la rubrique dans Oracle spool

J'ai mis de partir, les commentaires hors

SET HEADING OFF SET réinjection SPOOL D: \ TEST.TXT SELECT SYSDATE FROM DUAL; OFF SPOOL

SORTIE dans TEST.TXT:

SQL> SELECT SYSDATE du double;

20-janv.-09

SQL> SPOOL OFF

Comment puis-je supprimer les deux lignes SQL>. Je ne veux que la sortie.

Merci d'avance.

Répondre

14

La commande dont vous avez besoin est:

SET ECHO OFF 

Cependant, il ne fonctionne que pour l'exécution de code à partir de scripts, ne commande entrée interactive. Vous créez un fichier de script comme celui-ci (par exemple appelé test.sql):

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0 
SPOOL D:\TEST.TXT 
SELECT SYSDATE FROM DUAL; 
SPOOL OFF 

Ensuite, dans SQL Plus géré comme ceci:

SQL> @test 

J'ai ajouté PAGESIZE 0 à la commande SET pour supprimez la ligne vide que vous avez obtenue avant la date dans le fichier de sortie.

+0

Merci Tony votre idée fonctionne. Et benjamin merci pour vos scripts. Cheers, Seenu. –

+0

N'hésitez pas à partager vos réponses et acceptez celle qui a le mieux résolu votre problème! –

4

utiliser ceci:

#!/bin/ksh 
CONNECT_STRING=dbapp/[email protected] 
SQLPLUS_SETTINGS="SET PAGESIZE 1000 LINESIZE 500 ECHO OFF TRIMS ON TAB OFF FEEDBACK OFF HEADING OFF" 
SQL_RESULT=`sqlplus -s ${CONNECT_STRING} << EOF 
${SQLPLUS_SETTINGS} 
select sysdate from dual; 
exit; 
EOF` 

echo $SQL_RESULT >output_file 
+0

Non, il montre la même chose. Veuillez trouver la sortie SQL> SELECT SYSDATE FROM DUAL; 20-JAN-10 SQL> SPOOL OFF –

+0

Vérifiez maintenant avec la réponse modifiée – Vijay

+1

+ Cette solution n'emballe pas ou ne tronque pas les lignes. C'est ce que je cherchais. –