假脱机sql日志,名称上的日期为

时间:2018-08-30 14:46:03

标签: windows oracle spool

我放在开头的是sql脚本:

column dt new_value mydate noprint
select to_char(sysdate. 'YYYYMMDD') dt from dual;
spool &mydate.test.log

尝试使用时间戳来假脱机日志。

但是,当我这样做时,假脱机文件名为&mydate.test.log

有人知道我在这里错过了什么吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

在SQL * Plus中,使用{p>检查define设置

show define

通常,它应该会显示

define "&" (hex 26)

但是,可以将其设置为其他字符,或者将其完全禁用,在这种情况下,您会看到

define OFF

并重新启用它,您将需要

set define on

如果要在日期和.之间保留test.log,则将需要两个点,因为第一个点终止替换变量:

SQL> spool &mydate..test.log
SQL> spool
currently spooling to 20180830.test.log

答案 1 :(得分:0)

您需要

SET define ON

例如:

SQL> column dt new_value mydate noprint
SQL> select to_char(sysdate, 'YYYYMMDD') dt from dual;

SQL> set define off
SQL> select '&mydate' from dual;

'&MYDATE'
--------------------------------
&mydate

SQL> set define on
SQL> select '&mydate' from dual;

'20180830'
--------------------------------
20180830

Here,您会发现更多。