在Oracle SQL运行期间将系统日期添加到文件名中

问题描述 投票:0回答:1

我正在SQL Developer(oracle)中运行以下代码,以运行查询并将csv文件导出到文件夹中。我也想将系统日期添加到文件名中。我正在使用以下代码。尽管可以完成此工作,但它会要求用户在弹出窗口中输入日期。我希望摆脱弹出窗口,而是让代码改用系统日期。有什么方法可以消除用户输入窗口?

第二个问题是,这还将SQL代码和查询结果一起带到输出文件中,还有什么方法可以避免引入SQL?

set VERIFY off 
set FEEDBACK off
set echo off 
set heading off
col date_stp new_value date_stp
Select to_char(sysdate,'yyyymmdd') date_stp from dual;

Spool 'I:\Folder\ExportData&date_stp..csv'; 
SET sqlformat csv;
Select Customer, ID, etc -- the content of the query

Spool off;
sql spool
1个回答
0
投票

这里是方法:

SQL> col datum new_val x
SQL> select to_char(sysdate, 'yyyymmdd') datum from dual;

DATUM
--------
20200612

SQL> spool emp&x..txt
SQL> select empno, ename, job, sal from emp where deptno = 10;

     EMPNO ENAME      JOB              SAL
---------- ---------- --------- ----------
      7782 CLARK      MANAGER         2450
      7839 KING       PRESIDENT       5000
      7934 MILLER     CLERK           1300

SQL> spool off
SQL> $dir emp*.txt
 Volume in drive C is OSDisk
 Volume Serial Number is 7635-F892

 Directory of C:\Users\lf

12.06.2020.  20:46               494 emp20200612.txt          --> here it is
               1 File(s)            494 bytes
               0 Dir(s)  260.047.118.336 bytes free

SQL>
© www.soinside.com 2019 - 2024. All rights reserved.