sql * plus @ vs @@以运行文件

问题描述 投票:0回答:1

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

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

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

FYI:@@filename@@filename.sql都似乎起作用,因为它假定了扩展名

sqlplus
1个回答
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。

© www.soinside.com 2019 - 2024. All rights reserved.