gpt4 book ai didi

sql - 使用过程将表导出到 csv 文件(带有时间戳的 csv 名称)

转载 作者:行者123 更新时间:2023-12-04 18:39:44 26 4
gpt4 key购买 nike

我想将一个表导出到每个 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 文件的名称?

最佳答案

有几个步骤:

  • 创建 directory使用 `CREATE DIRECTORY my_dir 作为 'C:\dir';
  • 确保 Oracle 已读取、写入计算机上的文件夹(最好通过在 Oracle 安装文件夹中创建它来实现)
  • 授予用户执行过程 GRANT read,write on DIRECTORY my_dir to the_user;
  • 下载并编译方便的程序 here

  • 我用过这个,效果很好。
    用法
    data_dump ( 'Select emp_name from emp',
    CURRENT_TIMESTAMP||'filename.csv',
    my_dir);
    (大大简化的示例!)
    创建目录后,通过运行以下命令验证您的工作:
  • 从 ALL_DIRECTORIES 中选择 *;
  • 您应该会看到您的目录
  • 登录数据库所在的机器,验证文件夹路径是否存在,并且oracle用户对其有权限。仅当运行 oracle 服务的用户对该文件夹具有权限时才可以使用网络驱动器
  • 关于sql - 使用过程将表导出到 csv 文件(带有时间戳的 csv 名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29399233/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com