SQL @ Plus中的“@”是做什么的

时间:2013-07-22 07:55:36

标签: sql oracle sqlplus

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

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

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

2 个答案:

答案 0 :(得分:4)

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

SQL * Plus有许多单字符命令,如@/(执行缓冲的SQL);,当你在{{1}中遇到它们时可能会感到困惑文件。

Oracle 9i文档中记录了{p> .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;

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