
aqui estou tentando executar uma consulta normal com sqlplus e despejar o resultado em um arquivo CSV, então tenho outro trabalho a fazer, estou enfrentando um problema meu script não continua após executar a consulta sqlplus ele apenas visualiza o resultado e despeja a saída em csv, mas ele não continua e também não sei como despejar os dados sem ver o 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/
.
.
.
Responder1
A linha contendo EOF
comespaços em branco iniciaisnão encerra o documento aqui iniciado com <<EOF
. Use EOF
sem espaços em branco iniciais. Em vez de
EOF
você deveria usar
EOF
Como alternativa, altere a linha com redirecionamento para sqlplus -s test/test <<-EOF
e, em seguida, recue com tabulações.
Se o operador de redirecionamento for
<<-
, todos os caracteres de tabulação iniciais serão removidos das linhas de entrada e da linha que contém o delimitador. Isso permite que os documentos aqui dentro dos scripts de shell sejam recuados de maneira natural.
(fonte)