
aquí estoy tratando de ejecutar una consulta normal con sqlplus y volcar el resultado en un archivo CSV, luego tengo otro trabajo que hacer, tengo un problema, mi secuencia de comandos no continúa después de ejecutar la consulta sqlplus, solo ve el resultado y vuelca la salida en archivo csv pero no continúa. Tampoco sé cómo volcar los datos sin ver el resultado.
#!/bin/bash
cd /dir/test_dir
sqlplus -s test/test <<EOF
set colsep ,
set underline off,
set headsep off,
set feedback off,
set long 99999,
set linesize 32767,
set trimspool on,
spool report(date +%Y-%m-%d).csv
select a.s, a.d, a.t, a.ww, a.tt from test a;
exit;
EOF
cd ../
mkdir test/
.
.
.
Respuesta1
La línea que contiene EOF
conespacios en blanco principalesno termina el documento aquí que comienza con <<EOF
. Úselo EOF
sin espacios en blanco iniciales. En lugar de
EOF
Deberías usar
EOF
Alternativamente, cambie la línea con redirección sqlplus -s test/test <<-EOF
y luego sangría con tabulaciones.
Si el operador de redirección es
<<-
, todos los caracteres de tabulación iniciales se eliminan de las líneas de entrada y de la línea que contiene el delimitador. Esto permite sangrar los documentos aquí dentro de los scripts de shell de forma natural.
(fuente)