我想将一个表导出到每个 csv 文件并用时间戳命名该 csv 文件。例如,如果我有一张 table 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 代码?
我应该使用线轴
D:\path\filename.csv
请?(2) 在 spool 行中,请问如何使用时间戳 now() 更改 csv 文件的名称?
最佳答案
有几个步骤:
GRANT read,write on DIRECTORY my_dir to the_user;
我用过这个,效果很好。
用法
data_dump ( 'Select emp_name from emp',
CURRENT_TIMESTAMP||'filename.csv',
my_dir);
(大大简化的示例!)创建目录后,通过运行以下命令验证您的工作:
关于sql - 使用过程将表导出到 csv 文件(带有时间戳的 csv 名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29399233/