Istnieje kilka różnych podejść w tym wątku AskTom na zwracanie wartości z SQL*Plus do skryptu powłoki .
Jednym z powszechnych podejść jest wybranie stałego tokena oprócz wartości, którą chcesz zwrócić (w przykładzie Toma jest to ciąg „KEEP”), a następnie użycie sed (lub ulubionego parsera wiersza poleceń) do wyodrębnienia danych, które chcesz jesteś zainteresowany
#!/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
Inne podejścia, takie jak podejścia, które pozwalają odczytaj wiele wierszy wyjścia są również omawiane w tym wątku.
Jeśli nie chcesz, aby nagłówek był drukowany, powinieneś określić
set head off
w skrypcie SQL*Plus — nie jestem pewien, dlaczego jawnie ustawiasz nagłówek w skrypcie, jeśli nie chcesz nagłówka... Czy chcesz zachować część nagłówka?