使用 sqlplus 執行查詢後,bash 腳本不繼續

使用 sqlplus 執行查詢後,bash 腳本不繼續

在這裡,我嘗試使用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 腳本中的此處文件以自然的方式縮排。

來源

相關內容