5

我在 sql 代码中找到了这一行:

@../../sql_scripts/create_tables.sql

它有什么作用?我知道这@@file.sql意味着 file.sql 正在运行,并且@可以在我们以后想要提供参数值时使用,但这里我@后面跟着一个文件名。我知道有一个类似的问题,但它只涵盖@查询。

4

2 回答 2

6

这里@不是 SQL 语言的一部分。它可能是 SQL 解释器的命令,可能是 Oracle SQL*Plus。

SQL*Plus 有许多单字符命令,例如@or /(执行缓冲 SQL),当您在文件;中遇到它们时可能会感到困惑。.sql

@Oracle 9i 文档中记录。在那里你会看到与@@.

Oracle 11g Release 2 的文档,单击 Next section 获取 @@ 参考。

于 2013-07-22T08:06:21.577 回答
1

允许您将@另一个脚本导入您在 SQL*Plus 中运行的 sql 脚本。

例如,这会otherscript.sql在指定点执行 的内容:

PROMPT about to run other script

@otherscript.sql

PROMPT finished running other script

另一个示例,这会将另一个文件的内容插入要在 SQL*Plus 中执行的语句的中间:

SELECT * FROM mytable WHERE
@predicates_for_mytable.sql
AND bla = 1;

唯一的条件是@必须出现在该行的第一个字符处。

于 2013-07-23T07:01:55.830 回答