使用 SQL Developer (SQLcl) 假脱机到动态位置
Posted
技术标签:
【中文标题】使用 SQL Developer (SQLcl) 假脱机到动态位置【英文标题】:Spooling to dynamic location using SQL Developer (SQLcl) 【发布时间】:2017-07-03 12:20:30 【问题描述】:对于可能的重复,我深表歉意,但我似乎无法使其正常工作。我有一个 .sql 文件,我试图在其中传递像“C:\Path\To”这样的参数来调整假脱机输出的位置,因为我想从 Windows 调度程序脚本运行它。 print 语句显示了正确的路径,更不用说像这样的标题了:
ARGPATH
---------------------------------------------------------------------------- ----
C:\Path\To\output.txt
但是,我似乎无法让假脱机与这种类型的动态文件位置参数一起工作。运行脚本时除了缺少输出没有错误。我正在使用 SQL Developer 的 CLI SQLcl 版本 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】:你想多了。单独使用替换,不要按照您尝试的方式使用绑定。
spool '&argpath\output.txt'
select 1 from dual;
spool off
【讨论】:
以上是关于使用 SQL Developer (SQLcl) 假脱机到动态位置的主要内容,如果未能解决你的问题,请参考以下文章