use*_*082 5 sql oracle stored-procedures
我想将一个表导出到每个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
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
(1)我不知道如何将csv文件输出到requried目录中,请问如何修复假脱机代码?
我应该使用线轴D:\path\filename.csv吗?
(2)在假脱机行中,如何使用时间戳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);
Run Code Online (Sandbox Code Playgroud)
(大大简化的样本!)
创建目录后,运行以下命令验证您的工作: