问题描述
这是我第一次接触 sql。
对于培训,我想创建一个脚本,该脚本将使用 .bat 运行。 该脚本必须在 excel 文件上打印一些计数的结果。
这是一个请求示例:
select count(distinct email) as nb_mail,count(distinct siret) as nb_siret from MY_TABLE
我想要一个包含两列的excel文件,一列用于邮件,另一列用于siret。
我可以为这个过程提供一个例子吗?谢谢!
解决方法
好吧,输出到 .xlsx 文件并不是那么容易。老实说,我不知道该怎么做。但是,创建一个可以被 MS Excel 轻松打开的 .CSV 文件并不困难。
spool_to_csv.SQL 文件:
set trim on
set echo off
set feedback off
set colsep ';'
spool my_csv.csv
select d.dname,count(*) cnt
from emp e join dept d on e.deptno = d.deptno
group by d.dname
order by d.dname;
spool off;
exit
spool_to_csv.BAT 文件:
sqlplus -s scott/tiger @spool_to_csv.sql
当你运行它时,结果是(在 Excel 中打开):
如果你觉得没问题,就用它。如果没有,恐怕我也帮不上什么忙了。