[英]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.