2017-06-22 51 views
0

我正在遠程訪問oracle數據庫,我需要將結果重定向到本地csv文件。我設置了一些選項,一個簡單的SQL查詢語句,最後我重定向到本地文件。 在此基礎上linkthis我這樣做:sqlplus客戶端將遠程結果重定向到本地文件

./sqlplus user/[email protected]:1521/SID <<< "SET PAGESIZE 40000 FEEDBACK OFF MARKUP HTML ON select * from mytable where ROWNUM <= 10" >> test_file.xls 

這樣做,我得到這個Oracle錯誤:SP2-0158:未知的SET選項 「選擇」。錯誤是自我解釋。我知道我需要這些設置語句來格式化我的輸出。刪除SET語句工作正常,但輸出。

要輸出,我不插入SPOOL語句,因爲該文件將在遠程計算機上生成。

我需要做什麼才能獲得結果到我的本地文件?

+1

我想你只需要'ON'和'select'之間的分號。然而,heredoc雖然可能更簡單。爲什麼您認爲遠程機器上的假脫機輸出?這是一個客戶端命令。 –

+0

@AlexPoole我以前試過:SP2-0158:未知的SET選項「;」 – learner

回答

1

試一下:

./sqlplus user/[email protected]:1521/SID <<EOF >> test_file.xls 
SET PAGESIZE 40000 FEEDBACK OFF MARKUP HTML ON 
select * from mytable where ROWNUM <= 10; 
exit 
EOF 
+0

@ ser3515709它的工作原理。 EOF在這種情況下究竟做了什麼?另一個,輸出當然是在html中。我的意願是生成一個xls – learner

+0

它表示將所有內容重定向到命令,直到找到單詞EOF。它可以是任何字或詞組,如「FOO或<<! 此外,HTML輸出是你問MARKD HTML ON,excel識別HTML,所以你的文件將在Excel中打開。 –

相關問題