
在這裡,我嘗試使用sqlplus 運行普通查詢並將結果轉儲到CSV 文件中,然後我還有另一項工作要做,我面臨的問題是我的腳本在執行sqlplus 查詢後無法繼續,它只是查看結果並將輸出轉儲到csv 文件,但它不會繼續,我也不知道如何轉儲資料而不查看結果
#!/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/
.
.
.
答案1
該行EOF
包含前導空格不會終止以 開頭的此處文件<<EOF
。使用時EOF
不含前導空格。代替
EOF
你應該使用
EOF
或透過重定向更改行sqlplus -s test/test <<-EOF
,然後使用製表符縮排。
如果重定向運算子是
<<-
,則所有前導製表符將從輸入行和包含定界符的行中移除。這允許 shell 腳本中的此處文件以自然的方式縮排。
(來源)