我放在开头的是sql脚本:
column dt new_value mydate noprint
select to_char(sysdate. 'YYYYMMDD') dt from dual;
spool &mydate.test.log
尝试使用时间戳来假脱机日志。
但是,当我这样做时,假脱机文件名为&mydate.test.log
有人知道我在这里错过了什么吗?
谢谢!
答案 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,您会发现更多。