2017-07-03 51 views
0

我为可能的重复道歉,但我似乎无法得到这个工作。我有一个.sql文件,我试图传递像“C:\ Path \ To”这样的参数来调整假脱机输出的位置,因为我想从Windows调度程序脚本运行它。 print语句显示了正确的路径,更别说像这样的标题:使用SQL Developer(SQLcl)假脱机到动态位置

ARGPATH 
---------------------------------------------------------------------------- ---- 
C:\Path\To\output.txt 

不过,我似乎无法获得后台与这种类型的动态文件位置参数来工作。在缺少输出的情况下运行脚本时没有错误。我正在使用SQL Developer的CLI SQLcl ver 4.2,12.1.0.2.0。不幸的是,我坚持使用这个特定的工具,对开发环境的控制很少。有关如何仅将文件缓存到本地文件夹(sql脚本所在的位置)而不是某些默认位置的说明也非常受欢迎。提前致谢!

set heading off 
var argpath varchar2(100) 
exec :argpath := Trim('&1'||'output.txt') 
spool argpath; 

print argpath; 
select count (*) .../select statement/ 
spool off; 
exit 

也许我应该补充一点,当我明确声明的路径,如预期即

spool C:\Path\To\output.txt 

一切正常而已。

回答

0

你在推翻它。使用自己的替代,并且不要按照您尝试的方式使用绑定。

spool '&argpath\output.txt' 
select 1 from dual; 
spool off