我在sql代码中找到了这一行:
@../../sql_scripts/create_tables.sql
它做什么?我知道@@file.sql
意味着运行file.sql并且当我们想要稍后提供参数值时可以使用@
,但在这里我有@
后跟文件名。我知道有一个类似的问题,但它只涵盖查询中的@
。
答案 0 :(得分:4)
此处@
不是SQL语言的一部分。它可能是SQL解释器的命令,可能是Oracle SQL * Plus。
SQL * Plus有许多单字符命令,如@
或/
(执行缓冲的SQL);
,当你在{{1}中遇到它们时可能会感到困惑文件。
.sql
here。在那里,您会看到与@
的区别。
documentation for Oracle 11g Release 2,单击下一部分以获取@@ reference。
答案 1 :(得分: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;
唯一的条件是@
必须出现在该行的第一个字符上。