2013-06-28 68 views
1

以下代碼正在返回:如何在shell腳本中只用sql返回值?

EMAIL ------------------------------------- ------------------------------------------- [email protected]

情況下, 「$型」

   2) 
       echo "Type is outbound: $type" 
         contact=$(sqlplus -s ${SQLPLUS_INFO} <<EOF 
         SELECT email FROM table WHERE email = 'x'; 
         exit 
         EOF) 
         echo 
         echo $contact 
         echo 
       ;; 

       1) 
       echo "Type is inbound: $type" 
       ;; 
     esac 

但我只是想:

EMAIL ------------------------ -------------------------------------------------- ------ [email protected]

請幫忙嗎?

+0

你想要什麼,你得到的是相同的。你的問題是什麼? –

回答

2

sqlplus命令set pagesize 0會關閉列標題和其他分頁內容。

case "$type" in 
    2) echo "Type is outbound: $type" 
     contact=$(sqlplus -s ${SQLPLUS_INFO} <<EOF 
      set pagesize 0 
      SELECT email FROM table WHERE email = 'x'; 
      exit 
EOF 
     ) 
     printf "\n%s\n\n" "$contact" 
    ;; 

這個網頁是一個有用的參考:http://ss64.com/ora/syntax.html

+0

它的工作,謝謝! 也感謝提供的參考!會檢查! –

1

問題是你在EOF語句後面)。

EOF應該總是獨自一人!

通過把一個新的行修正你的腳本。

... 
exit 
EOF 
) 
echo 
... 
+0

它沒有工作Renato,結果是一樣的: –

+0

@LeandroToshioTakeda,也確保你沒有任何空白之前或之後「EOF」 –

+0

沒有工作也@glenn傑克曼,我也試圖刪除標籤,相同的結果: 電子郵件------------------------------------------------ -------------------------------- [email protected] EMAIL是表列名稱,不確定是什麼很多---和[email protected]是表中的值,我想要的。 –

相關問題