sql * plus @ vs @@运行文件

时间:2020-04-16 23:10:49

标签: sqlplus

我们有一些迁移脚本,它们在SQL * Plus脚本中使用@@filename@filename来调用另一个文件。 (例如,将thesql.sql称为其@@thesql

我想了解@@@之间的区别。

我发现有很多答案可以解释@filename将从当前目录中调用文件,但是与双@无关。

FYI:@@filename@@filename.sql似乎都可以正常工作,因为它采用了扩展名

1 个答案:

答案 0 :(得分:0)

我最终在https://www.orafaq.com/wiki/SQL*Plus_FAQ#What_is_the_difference_between_.40_and_.40.40.3F上找到了答案

@和@@有什么区别?

@(符号)等效于START命令,用于运行SQL * Plus命令脚本。

SQL> @myscript.sql

单个@符号在当前目录中运行脚本(或一个使用完整或相对路径指定的脚本,或者在您的SQLPATH或ORACLE_PATH中找到的脚本)。

@@将启动一个sqlplus脚本,该脚本与调用该脚本的脚本位于同一目录(相对于当前脚本的目录)。通常用于嵌套命令文件。调用?/ rdbms / admin目录中的下标的脚本通常使用此技术。 @@引用不支持相对目录引用,例如@@ dir / file.sql或@@。/ file.sql。

相关问题