使用SQL Developer(SQLcl)进行动态定位

时间:2017-07-03 12:20:31

标签: windows batch-file sqlplus sql-scripts

我为可能的重复道歉,但我似乎无法让这个工作。我有一个.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

一切都按预期工作。

1 个答案:

答案 0 :(得分:0)

你是在思考它。单独使用替换,不要使用你想要的方式绑定。

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