簡體   English   中英

使用來自 oracle 查詢和導出到 csv 文件中的數據提取 header 的腳本

[英]Script to extract header with data from oracle query & export into csv file

我正在使用一個查詢,如下所示。 我想將以下查詢的結果集導出到 csv 文件中。

select a.eid, b.ename, c.pid, b.pnm 
from tab1 a join tab2 b on a.eid=b.eid
join tab3 c on b.pid=c.pid;

我想從上述結果集中提取 csv 文件以及標題並使用存儲過程或任何腳本保存到C:\User\mows\文件夾中。 所以我需要在 csv 中使用 header 的結果集,如下格式。 你能幫我解決這個問題嗎?

EID     ENAME     PID    PNM
---     -----     ---    ---
1001    Steve     21     IT
1003    Tim       23     Management
1005    Craig     25     Account
.......................

當上述SQL查詢運行時,csv 文件中的數據以及標題。

這是使用 SQLcl 的一個選項 - 這是使用與 sqldeveloper 相同的引擎的命令行客戶端。 這允許在 sql 查詢中傳遞提示以格式化 output。 對於 csv,這是一個解決方案:

scott>select /*csv*/ * from emp;

"EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO"
7839,"KING","PRESIDENT",,17/11/81,5001,,10
7698,"BLAKE","MANAGER",7839,01/05/81,2850,,30
7782,"CLARK","MANAGER",7839,09/06/81,2450,,10
7566,"JONES","MANAGER",7839,02/04/81,2975,,20
7788,"SCOTT","ANALYST",7566,09/12/82,3000,,20
7902,"FORD","ANALYST",7566,03/12/81,3000,,20
7369,"SMITH","CLERK",7902,17/12/80,801,,20
7499,"ALLEN","SALESMAN",7698,20/02/81,1600,300,30
7521,"WARD","SALESMAN",7698,22/02/81,1250,500,30
7654,"MARTIN","SALESMAN",7698,28/09/81,1250,1400,30
7844,"TURNER","SALESMAN",7698,08/09/81,1500,0,30
7876,"ADAMS","CLERK",7788,12/01/83,1100,,20
7900,"JAMES","CLERK",7698,03/12/81,950,,30
7934,"MILLER","CLERK",7782,23/01/82,1300,,10

14 rows selected. 

要假脫機到文件,請使用spool命令,就像在 sqlplus 中一樣。 假脫機到文件的某些選定列的示例:

scott>spool empcsv.csv
scott>select /*csv*/ empno, ename FROM emp FETCH FIRST 5 ROWS ONLY;

"EMPNO","ENAME"
7839,"KING"
7698,"BLAKE"
7782,"CLARK"
7566,"JONES"
7788,"SCOTT"

scott>spool off

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM