Oracle
 sql >> Base de données >  >> RDS >> Oracle

Config SQL*Plus pour ne renvoyer que des données

Il existe plusieurs approches différentes dans ce fil askTom sur renvoi des valeurs de SQL*Plus à un script shell .

Une approche courante consiste à sélectionner un jeton constant en plus de la valeur que vous souhaitez renvoyer (dans l'exemple de Tom, c'est la chaîne "KEEP"), puis à utiliser sed (ou votre analyseur de ligne de commande préféré) pour extraire les données que vous êtes réellement intéressé par

#!/bin/ksh

x=`sqlplus / <<endl | grep KEEP | sed 's/KEEP//;s/[   ]//g'
select 'KEEP' , max(sal) from emp;
exit
endl`

echo the answer is $x

D'autres approches, telles que les approches qui vous permettent de lire plusieurs lignes de sortie sont également abordés dans ce fil.

Si vous ne voulez pas que l'en-tête soit imprimé, vous devez spécifier

set head off

dans votre script SQL*Plus - Je ne sais pas pourquoi vous définissez explicitement l'en-tête dans le script si vous ne voulez pas l'en-tête... Voulez-vous conserver une partie de l'en-tête ?