sql >> Base de Datos >  >> RDS >> Oracle

Configure SQL*Plus para devolver nada más que datos

Hay algunos enfoques diferentes en este hilo de askTom en devolver valores de SQL*Plus a un script de shell .

Un enfoque común es seleccionar un token constante además del valor que desea devolver (en el ejemplo de Tom, esa es la cadena "KEEP") y luego usar sed (o su analizador de línea de comandos favorito) para extraer los datos que desea. estás realmente interesado en

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

Otros enfoques, como enfoques que le permiten leer varias líneas de salida también se discuten en ese hilo.

Si no desea que se imprima el encabezado, debe especificar

set head off

en su secuencia de comandos SQL*Plus:no estoy seguro de por qué está configurando explícitamente el encabezado en la secuencia de comandos si no desea el encabezado... ¿Desea conservar alguna parte del encabezado?