Oracle
來自 Sqlplus 的壓縮假離線文件
我有在 Oracle SQL Developer 中執行的腳本,然後將結果作為 csv 導出到我的電腦。我現在開始使用帶有 .bat 的 sqlplus 來執行我的腳本並將結果假離線到我的電腦上。但我注意到從 sqlplus 導出的文件是從 SQL Developer 導出的文件的兩倍。文件的內容/結果完全相同。這是我的名為 oracle_sql.sql 的 sql 文件
set embedded on; set pagesize 0; set colsep ','; set echo off; set feedback off; set linesize 1000; set trimspool on; set headsep off; set termout off; set heading on; set und off; spool mytable.csv select item, item_desc from mytable; spool off
這是我的 .bat 文件程式碼
@echo off sqlplus jasons/jasons@localhost @oracle_sql.sql
我是否需要在我的 sql 文件中有一個我不知道的額外設置?
這是因為 set linesize 1000 子句。那就是使假離線文件中的所有行都為 1000 行長,即使沒有這樣的數據。
從乾淨的 SQL sqlplus 會話中嘗試此操作:
set linesize 1000 spool test.txt select * from dual; spool off exit
然後,返回 shell 並使用任何文本編輯器打開 test.txt,移動到屬於 SQL 查詢結果的行(而不是您編寫查詢的提示行)並檢查它的長度。
這 3 行將是 1000 字節長。