2016-10-13 122 views
0

我已經從RHEL服務器更改爲CentOS,一個正在工作的shell腳本不再有效。 CSV文件是空的,但是當我將SQL複製並粘貼到SQLPlus中時,我得到了100行?Shell腳本不保存SQLPlus的輸出

#!/bin/bash 

    function getdata 
    { 
    sqlplus -s user/pass <<EOF 
    SET COLSEP , 
    SET LINESIZE 10000 
    SET PAGESIZE 50000 
    SET NEWPAGE NONE 
    SET HEADING OFF 
    SET FEEDBACK OFF 
    SET ECHO OFF 
    SET TRIMSPOOL ON 

    select distinct orders.order_no, orders.order_total from orders; 

    exit; 
    EOF 
    } 

    getdata | sed 's/,\s\+/,/g; s/\s\+,/,/g' > output.csv 
+2

是否有回車問題?你能檢查你的線條結束嗎?如果你刪除'sed'過濾器會發生什麼? –

+1

您可能需要添加SPOOL命令,例如SPOOL myfile.csv。 – BriteSponge

+0

@BriteSponge這將是正確的答案。我假設他們的意思是他們在終端屏幕上獲得了100行,而不是像他們想要的那樣在output.csv中。 –

回答

0

您可能需要設置set serverout on

也期待^ M字符在你的腳本,這些攀升的複製時說RHEL --> Windows --> CentOS。只是一個想法。