在 Oracle SQL 运行 期间将系统日期添加到文件名
Add System Date to file name during Oracle SQL Run
我正在 运行SQL 开发人员 (oracle) 中使用以下代码 运行 查询并将 csv 文件导出到文件夹中。我也想将系统日期添加到文件名中。我正在使用以下代码。虽然它完成了工作,但它要求用户在弹出窗口中输入日期 window。我希望摆脱弹出窗口 window,而是让代码使用系统日期。有什么办法可以消除用户输入 window?
第二个问题是,这也将 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;
方法如下:为了避免在假脱机文件中显示 select
语句,您需要
set term off
set feed off
但不是直接在SQL*Plus(或SQL开发者)中;你必须将以下内容保存到一个.SQL文件中,然后运行它使用@
.
所以:p.sql
set term off
set feed off
col sd new_value x
select to_char(sysdate,'YYYYMMDD') sd from dual;
spool dept&x..txt
select * From dept;
spool off
测试:
SQL> @p --> call the .sql file
SQL> $dir *.txt
Volume in drive C is OSDisk
Volume Serial Number is 7635-F892
Directory of C:\Users\lf
12.06.2020. 21:13 494 dept20200612.txt --> file name is OK
1 File(s) 494 bytes
0 Dir(s) 260.040.732.672 bytes free
SQL> $type dept20200612.txt
--> no SELECT statement here
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>
为了停止 SQL*Plus 或 SQL 开发人员询问替换变量的值(这就是 &something
所代表的),运行 set define off
.
我正在 运行SQL 开发人员 (oracle) 中使用以下代码 运行 查询并将 csv 文件导出到文件夹中。我也想将系统日期添加到文件名中。我正在使用以下代码。虽然它完成了工作,但它要求用户在弹出窗口中输入日期 window。我希望摆脱弹出窗口 window,而是让代码使用系统日期。有什么办法可以消除用户输入 window?
第二个问题是,这也将 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;
方法如下:为了避免在假脱机文件中显示 select
语句,您需要
set term off
set feed off
但不是直接在SQL*Plus(或SQL开发者)中;你必须将以下内容保存到一个.SQL文件中,然后运行它使用@
.
所以:p.sql
set term off
set feed off
col sd new_value x
select to_char(sysdate,'YYYYMMDD') sd from dual;
spool dept&x..txt
select * From dept;
spool off
测试:
SQL> @p --> call the .sql file
SQL> $dir *.txt
Volume in drive C is OSDisk
Volume Serial Number is 7635-F892
Directory of C:\Users\lf
12.06.2020. 21:13 494 dept20200612.txt --> file name is OK
1 File(s) 494 bytes
0 Dir(s) 260.040.732.672 bytes free
SQL> $type dept20200612.txt
--> no SELECT statement here
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL>
为了停止 SQL*Plus 或 SQL 开发人员询问替换变量的值(这就是 &something
所代表的),运行 set define off
.