简体   繁体   English

使用来自 oracle 查询和导出到 csv 文件中的数据提取 header 的脚本

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

I am using one query as below.我正在使用一个查询,如下所示。 I want to export result set of below query 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;

I want to extract csv file from the above result set along with headers & save into C:\User\mows\ folder using Stored procedure or any script.我想从上述结果集中提取 csv 文件以及标题并使用存储过程或任何脚本保存到C:\User\mows\文件夹中。 So I need result set with header in csv like below format.所以我需要在 csv 中使用 header 的结果集,如下格式。 Could you please help me on this.你能帮我解决这个问题吗?

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

Data along with headers in csv file when above SQL query run.当上述SQL查询运行时,csv 文件中的数据以及标题。

Here is one option using SQLcl - this is the command line client using the same engine as sqldeveloper.这是使用 SQLcl 的一个选项 - 这是使用与 sqldeveloper 相同的引擎的命令行客户端。 This allows passing hints in the sql query to format the output.这允许在 sql 查询中传递提示以格式化 output。 For csv, this is a solution:对于 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. 

To spool to a file, use the spool command, just like in sqlplus.要假脱机到文件,请使用spool命令,就像在 sqlplus 中一样。 Example for some selected columns spooled to a file:假脱机到文件的某些选定列的示例:

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