【发布时间】:2015-06-06 14:21:36
【问题描述】:
我想将一个表导出到每个 csv 文件,并用时间戳命名 csv 文件。比如我有一张表t1,导出后会生成一个csv文件名t1.YYYYMMDDHHMISS.csv。这是我的代码:
create or replace procedure
T_to_CSV(Tname varchar2,Directory varchar2)
BEGIN
set colsep , -- separate columns with a comma
set pagesize 0 -- No header rows
set trimspool on -- remove trailing blanks
set headsep off -- this may or may not be useful...depends on your
spool timestamp.csv --don't know how to write in directory
select *
from Tname
end
这是我的问题:
(1)我不知道怎么把csv文件输出到需要的目录,请问如何修复spool code?p>
我应该使用 spool D:\path\filename.csv 吗?
(2) 在spool line中,如何使用timestamp now() 更改csv文件的名称?
【问题讨论】:
-
Spool 用于 sqlplus,只能写入计算机或映射驱动器上的文件。目录用于将文件写入数据库所在的服务器或 UNC 路径。假脱机在过程中不起作用,但您可以使用 DBMS_OUTPUT,假脱机命令将获取其输出。
-
感谢思考,非常有帮助。请问您知道如何运行链接中的脚本吗?
-
不,抱歉。但问题看起来与您的问题非常相似 - (目录、时间戳)。
标签: sql oracle stored-procedures