Did*_*jit 6 sql oracle relative-path sql-scripts oracle-sqldeveloper
首先,这个问题涉及Oracle SQL Developer 3.2,而不是SQL*Plus或iSQL等.我已经做了很多搜索,但还没有找到一个直接的答案.
我有几个脚本集合,我正在尝试自动化(顺便说一句,我的SQL经验非常基本,主要是基于MS的).我遇到的麻烦是通过相对路径执行它们.例如,假设此设置:
scripts/A/runAll.sql
| /A1.sql
| /A2.sql
|
/B/runAll.sql
/B1.sql
/B2.sql
Run Code Online (Sandbox Code Playgroud)
我想要一个这样的文件scripts/runEverything.sql:
@@/A/runAll.sql
@@/B/runAll.sql
Run Code Online (Sandbox Code Playgroud)
脚本/ A/runAll.sql:
@@/A1.sql
@@/A2.sql
Run Code Online (Sandbox Code Playgroud)
在那里"@@",我推测,是指在SQL*Plus相对路径.
我愚弄了制作变量,但没有太多运气.我已经能够'&1'在根目录中使用和传递类似的东西.即:scripts/runEverything.sql:
@'&1/A/runAll.sql' '&1/A'
@'&1/B/runAll.sql' '&1/B'
Run Code Online (Sandbox Code Playgroud)
并通过执行以下命令调用它:
@'c:/.../scripts/runEverything.sql' 'c:/.../scripts'
Run Code Online (Sandbox Code Playgroud)
但这里的问题是B/runAll.sql用路径调用:c:/.../scripts/A/B.
那么,SQL Developer是否可以进行嵌套调用,以及如何进行?
Pat*_*con 12
这种方法有两个组成部分:
- 将活动的SQL Developer工作表的文件夹设置为默认目录.
- 打开驱动程序脚本,例如runAll.sql(然后将默认目录更改为活动目录),并使用runAll.sql脚本中的相对路径来调用兄弟脚本.
设置脚本默认文件夹.在SQL Developer工具栏上,使用此导航:
工具>首选项
在首选项对话框中,导航到数据库>工作表>选择默认路径以查找脚本.
输入查找脚本作为活动工作目录的默认路径:
"$ {} file.dir"
创建一个脚本文件并将所有脚本放在其中:
runAll.sql
A1.sql
A2.sql
runAll.sql的内容包括:
@ A1.sql;
@ A2.sql;
要测试此方法,请在SQL Developer中单击File并导航并打开script\runAll.sql文件.
接下来,选择all(在工作表上),然后执行.
通过导航和打开runAll.sql工作表的行为,默认文件夹变为"脚本".