sql*plus @ vs @@ 到 运行 一个文件
sql*plus @ vs @@ to run a file
我们有一些迁移脚本在 SQL*Plus 脚本中使用 @@filename
和 @filename
来调用另一个文件。 (例如,将 thesql.sql 称为 @@thesql
)
我想了解 @
和 @@
之间的区别。
我找到了很多解释 @filename
将从当前目录调用文件但与双 @ 无关的答案。
仅供参考:@@filename
和 @@filename.sql
似乎都有效,因为它假定扩展名
我最终在 https://www.orafaq.com/wiki/SQL*Plus_FAQ#What_is_the_difference_between_.40_and_.40.40.3F
上找到了答案
@和@@有什么区别?
@(at符号)相当于START命令,用于运行 SQL*Plus命令脚本。
SQL> @myscript.sql
单个 @ 符号 运行 是当前目录中的一个脚本(或者用完整路径或相对路径指定的脚本,或者在您的 SQLPATH 或 ORACLE_PATH 中找到的脚本) ).
@@ 将启动一个 sqlplus 脚本,该脚本与调用它的脚本位于同一目录中(相对于当前脚本的目录)。这通常用于嵌套的命令文件。此技术通常由在 ?/rdbms/admin 目录中调用下标的脚本使用。 @@ 引用不支持相对目录引用,例如@@dir/file.sql 或@@./file.sql。
我刚发现 START 命令与大多数其他 SQLPlus 命令一样,可以在上一行末尾放置破折号“-”后在下一行继续(当脚本需要很多或很长的参数时很有用)。但是,这不适用于 @ 或 @@ - 在 SQLPlus 版本 19.3 中。
SQLcl(来自 SQL Developer 的命令行工具)中的 START 和 @ 命令行继续工作。
我们有一些迁移脚本在 SQL*Plus 脚本中使用 @@filename
和 @filename
来调用另一个文件。 (例如,将 thesql.sql 称为 @@thesql
)
我想了解 @
和 @@
之间的区别。
我找到了很多解释 @filename
将从当前目录调用文件但与双 @ 无关的答案。
仅供参考:@@filename
和 @@filename.sql
似乎都有效,因为它假定扩展名
我最终在 https://www.orafaq.com/wiki/SQL*Plus_FAQ#What_is_the_difference_between_.40_and_.40.40.3F
上找到了答案@和@@有什么区别?
@(at符号)相当于START命令,用于运行 SQL*Plus命令脚本。
SQL> @myscript.sql
单个 @ 符号 运行 是当前目录中的一个脚本(或者用完整路径或相对路径指定的脚本,或者在您的 SQLPATH 或 ORACLE_PATH 中找到的脚本) ).
@@ 将启动一个 sqlplus 脚本,该脚本与调用它的脚本位于同一目录中(相对于当前脚本的目录)。这通常用于嵌套的命令文件。此技术通常由在 ?/rdbms/admin 目录中调用下标的脚本使用。 @@ 引用不支持相对目录引用,例如@@dir/file.sql 或@@./file.sql。
我刚发现 START 命令与大多数其他 SQLPlus 命令一样,可以在上一行末尾放置破折号“-”后在下一行继续(当脚本需要很多或很长的参数时很有用)。但是,这不适用于 @ 或 @@ - 在 SQLPlus 版本 19.3 中。 SQLcl(来自 SQL Developer 的命令行工具)中的 START 和 @ 命令行继续工作。