Oracle sqlplus:从脚本位置开始的相对路径

Pet*_*ang 6 sql sqlplus oracle10g

当我有两个sql文件时,其中一个在子目录中

main_test.sql
sub/sub_test.sql
Run Code Online (Sandbox Code Playgroud)

sub_test.sql调用@../main_test.sql(或@@../main_test.sql)然后从子目录执行它时工作正常

sub> sqlplus xxx @ sub_test.sql
Run Code Online (Sandbox Code Playgroud)

但是当我打电话时

sub> cd ..
> sqlplus xxx @ sub/sub_test.sql
Run Code Online (Sandbox Code Playgroud)

这导致了

SP2-0310: unable to open file "../main_test.sql"
Run Code Online (Sandbox Code Playgroud)

因为路径是从我的工作目录评估的,而不是我调用的sql文件的目录.

有没有办法从包含调用的文件目录开始使用相对路径?

mon*_*nny 3

遗憾的是,不支持“文件”网址 - 因为在使用“http://”路径时,这实际上效果很好!

我设置了 'sub_test\sub_test.sql' 来包含 double-ats:

@@../main.sql
Run Code Online (Sandbox Code Playgroud)

将整个目录结构放在 Tomcat webapps/ROOT 上下文下,如果您像这样调用它就可以工作:

SQL> @http://host:port/sub_test/sub_test.sql
Run Code Online (Sandbox Code Playgroud)

我想设置一个网络服务器可能有点矫枉过正了?(显然也可以与 FTP 一起使用 - 没有尝试过)。