在该脚本中使用相对于SQL脚本位置的路径?

时间:2017-03-02 11:04:15

标签: sql oracle oracle-sqldeveloper sql-scripts

我在

中有一个sql脚本
dir:\some\path\script.sql

此脚本通过SqlDeveloper执行,spool将一些数据执行到

dir:\some\path\data\tablename.csv

现在,我必须将脚本存储在.sql文件中,因为如果我直接从SqlDeveloper执行它,spool会将查询本身写入我不想要的文件。

但是我也不想硬编码路径,因为我团队中的每个人都有他们想要的GIT仓库,所以我想要实现的场景是我的sql脚本使用它的相对路径&#39 ; s写入csv文件的位置。

目前script.sql看起来像这样:

SET COLSEP ";"
spool dir:\some\path\data\table1.csv
select /*csv*/ * from table1;
spool off;

我希望看起来像这样

SET COLSEP ";"
spool current_dir\data\table1.csv
select /*csv*/ * from table1;
spool off;

因此,在使用脚本时,只需在调用脚本时输入一次路径。

1 个答案:

答案 0 :(得分:0)

更多的解决方法而不是问题的解决方案,但是现在我刚刚在与scriptRunner.sql相同的目录中创建了一个script.sql文件,它只运行脚本(@script.sql) 。

打开此文件时,似乎SqlDevelopers工作目录设置为两个.sql文件所在的目录,并且此属性已扩展到被调用脚本,因此我可以简单地使用

spool data\table1.csv