我为可能的重复道歉,但我似乎无法让这个工作。我有一个.sql文件,我试图传递一个参数,如" C:\ Path \ To"调整假脱机输出的位置,因为我想从Windows调度程序脚本运行它。 print语句显示正确的路径,更不用说像这样的标题:
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 :(得分:0)
你是在思考它。单独使用替换,不要使用你想要的方式绑定。
spool '&argpath\output.txt'
select 1 from dual;
spool off