在sqlplus中假脱机到名称包含空格和脚本参数的文件?

时间:2017-08-29 10:49:43

标签: oracle sqlplus spool

我尝试使用参数更改脚本以将输出假脱机到特定路径。在搜索Stack Overflow之后,我想出了:

column filename new_val filename
select '"i:\Direct bank\incoming\ROSE\report_zgod_' || '^1' ||'.csv"' filename from dual;

spool &filename

这会创建正确的文件名" i:\ Direct bank \ incoming \ ROSE \ report_zgod_2017-08-28.csv" (我试图用字面意思而不是& filename并且文件已经创建),但它仍然没有写入文件。我的猜测是,因为路径中有一个空间。

我也试过

spool "&filename"
spool '&filename'

但无济于事。

我无法避免参数(它在脚本中的其他位置使用过,而且它无法真正从SYSDATE计算出来)而且我无法改变路径(它必须在某个地方"我:\直接银行")。

如何在假脱机文件的名称中同时包含参数和空格?

1 个答案:

答案 0 :(得分:0)

好的,我在https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:3581757800346555562的评论中找到了答案。

原始脚本的作者更改了默认值,因此我必须使用

spool ^filename

而不是

spool &filename

如果您遇到类似问题,原始代码包含:

set define "^"
set sqlprefix "^"

这就是我无法创建文件的原因。