当前位置: 首页 > 面试题库 >

在Oracle SQL Developer中按相对路径执行脚本

童冠玉
2023-03-14
问题内容

首先,这个问题与 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

我想要一个scripts/runEverything.sql类似这样的文件:

@@/A/runAll.sql
@@/B/runAll.sql

脚本/A/runAll.sql:

@@/A1.sql
@@/A2.sql

"@@"我收集的where表示SQL * Plus中的相对路径。

我自欺欺人地制造变量,但运气不佳。我已经能够使用'&1'和传递根目录来做类似的事情。即:scripts / runEverything.sql:

@'&1/A/runAll.sql' '&1/A'
@'&1/B/runAll.sql' '&1/B'

并通过执行以下命令调用它:

@'c:/.../scripts/runEverything.sql' 'c:/.../scripts'

但是这里的问题是B/runAll.sql使用path调用了c:/.../scripts/A/B

那么, 使用SQL Developer 可以进行嵌套调用吗?如何进行?


问题答案:

此方法包含两个组件:

-将活动的SQL Developer工作表的文件夹设置为默认目录。

-打开驱动程序脚本,例如runAll.sql(然后将默认目录更改为活动目录),并使用runAll.sql脚本中的相对路径来调用同级脚本。

  1. 设置脚本默认文件夹。在“ SQL Developer”工具栏上,使用以下导航:

工具>首选项

在首选项对话框中,导航到“数据库”>“工作表”>“选择默认路径以查找脚本”。

输入默认路径以将脚本查找为活动工作目录:

“ $ {file.dir}”

  1. 创建一个脚本文件,并将所有关联的脚本放入其中:

runAll.sql

A1.sql

A2.sql

runAll.sql的内容将包括:

@ A1.sql;

@ A2.sql;

若要测试此方法,请在SQL Developer中单击“文件”,然后浏览并打开script \ runAll.sql文件。

接下来,选择所有(在工作表上),然后执行。

通过导航和打开runAll.sql工作表的操作,默认文件夹变为“脚本”。



 类似资料:
  • 我正试图使用MacOS“scheduler”执行一些Java代码。 我的plist文件: 剧本上海: 问题是,我在程序中的所有相对路径(资源路径、属性、日志位置、Springbean文件等)都失败了。 plist文件位于根文件夹下,因此我假设所有路径都是相对于执行器位置的。

  • 这是我自己的USB驱动器上的程序文件夹: 我想使用启动 我不能使用这个:

  • 问题内容: 如果将PHP脚本作为cron脚本运行,则如果使用相对路径,则include常常会失败。例如,如果您有 在命令行上运行时会找到文件foo.php,但从cron脚本运行时找不到。 一个典型的解决方法是先chdir到工作目录,或使用绝对路径。但是,我想知道导致此行为的cron和shell之间的区别是什么。在cron脚本中使用相对路径时,为什么会失败? 问题答案: 从cron运行时,脚本的工作

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字

  • 在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《 Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。 指明一个文件存放的位置,有 2 种方法,分别是使用 绝对路径和 相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根