Oracle
 sql >> Database >  >> RDS >> Oracle

Config SQL*Plus per restituire nient'altro che dati

Esistono diversi approcci in questo thread di askTom su restituire valori da SQL*Plus a uno script di shell .

Un approccio comune consiste nel selezionare un token costante oltre al valore che si desidera restituire (nell'esempio di Tom, che è la stringa "KEEP") e quindi utilizzare sed (o il proprio parser da riga di comando preferito) per estrarre i dati che si sei effettivamente interessato a

#!/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

Altri approcci, come quelli che ti consentono di leggi più righe di output sono discussi anche in quel thread.

Se non vuoi che l'intestazione venga stampata, dovresti specificare

set head off

nel tuo script SQL*Plus-- Non sono sicuro del motivo per cui stai impostando esplicitamente l'intestazione nello script se non vuoi l'intestazione... Vuoi mantenere una parte dell'intestazione?