Oracle SQL查詢結果導出到文件、SET命令用法學習
- 1 概述
- 2 導出到文件的方法
- 2.2 命令行方式-sqlplus方式導出指定SQL查詢的結果到csv文件
- 步驟1:system或者實際其他的oracle賬號登錄到sqlplus命令行界面**
- 步驟2:執行SQL查詢語句前的設置目標導出文件內容格式
- 步驟3:開始設置輸出到csv文件,最后退出sqlplus
- 3 幫助
- 3.1 多個SET命令用法學習(COLSEP/LINESIZE/PAGESIZE/TIMING...)
1 概述
oracle數據庫最常用的是安裝在Linux(Solaris/Redhat/Cent OS等)操作系統上,如果需要把數據庫中指定查詢SQL語句的返回結果獲取到外部電腦或者給客戶發送,這個時候就需要用到導出的功能。下面提供典型的3種方式。
2 導出到文件的方法
| 序號 | 方法 | 方法描述 | 應用場景 |
|---|---|---|---|
| 1 | SQL Developer | 使用oracle數據庫官方的客戶端執行工具SQL Developer,遠程連接到oracle數據庫,然后執行sql查詢語句,在該軟件界面上針對查詢結果右鍵保存到相應的格式的文件。 | 如果有個電腦網絡和oracle數據庫安裝的機器連通,同時能夠安裝Oracle SQL Developer軟件 |
| 2 | SQL Plus | SET COLSEP ‘,’ 設置分隔符,運用SPOOL命令指定輸出到csv文件中 | 可以連接現場oracle所在的服務器上操作,但是無法安裝SQL Developer進行連接現場oracle |
| 3 | 導回數據庫備份文件 | 本地恢復現場導回來的基礎數據備份,然后可以用SQL Developer或者SQL Plus都可以。 | 不允許或者不方便連接到現場oracle的數據庫服務器上操作 |
2.2 命令行方式-sqlplus方式導出指定SQL查詢的結果到csv文件
假如你具備root權限登錄到安裝oracle數據庫所在的服務器上。那么按照下面的步驟可以試試:
步驟1:system或者實際其他的oracle賬號登錄到sqlplus命令行界面**
#su - oracle
$sqlplus /nolog
SQL>conn system
步驟2:執行SQL查詢語句前的設置目標導出文件內容格式
SQL>SET COLSEP ‘,’
SQL>SET LINESIZE 32767
SQL>SET PAGESIZE 0
SQL>SET FEEDBACK OFF
步驟3:開始設置輸出到csv文件,最后退出sqlplus
SQL>SPOOL /home/filepath.csv
SQL>執行具體的SQL語句
SQL>SPOOL off
SQL>exit
3 幫助
3.1 多個SET命令用法學習(COLSEP/LINESIZE/PAGESIZE/TIMING…)
| SET命令 | 命令用法說明 | 樣例 | 配套查詢命令 |
|---|---|---|---|
| set colsep | 設置查詢結果導出文件的分割符號 | SET COLSEP ‘,’ | show colsep |
| set linesize | 設置查詢結果中1行結果的顯示寬度,默認80,當數據大于linesize結果會折疊顯示。 | SET LINESIZE 10000 | show linesize |
| set pagesize | 設置每頁顯示的行數,設置為0表示不分頁 | SET PAGESIZE 0 | show pagesize |
| set heading | 設置是否顯示列標題,當heading設置為off的時候,每頁上面不顯示列標題,以空白行代替。枚舉值:on off | SET HEADING ON | show heading |
| set timing | 設置執行查詢SQL后是否顯示查詢耗時,默認是關閉的。枚舉值:on off | set timing on | show timing |
| set long | 設置查詢結果是long數據類型的最大顯示長度。默認值80 | set long 200 | show long |
| set feedback | 顧名思義,這個是設置執行一個操作后數據庫的反饋信息。會有3中格式。on off n(具體數字)。 一般情況,如果使用oracle執行運行SQL文件,這個時候會設置為off,否則好多執行結果消息比較混亂。以及把查詢結果導出到文件的時候,也設置為off比較合適。其他場景按需設置。 | 樣例1:set feedback on 樣例2:set feedback off 樣例2:set feedback 100 | show feedback |
| spool | 將查詢結果輸出到文件中。待需要的結果完成輸出后,需要使用SPOOL OFF停止輸出。 | SPOOL filepath.csv 完成輸出后配合SPOOL OFF關閉輸出 | show spool |