使用名称上的日期的假脱机sql日志

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

我在开头放了sql脚本:

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

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

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

谁知道我错过了什么?

提前致谢!

windows oracle spool
2个回答
2
投票

在SQL * Plus中,检查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

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你找到更多的东西。

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