Sqlplus查询的注释给出重复的行



更新我的问题:当我使用sqplus从unix运行这个查询时,它会给我重复的输出查询:

select sysdate from dual
/
/*comment*/
EXIT

输出
SQL> @tt.sql
12-AUG-16
12-AUG-16

是这样的

前两行(包括/)构成一个完整的SQL语句。SQLPlus执行它并显示第一行。

则/*comment*/在SQL语句外。因此,它被SQLPlus解释,而不是作为SQL注释。

关键是,SQLPlus脚本语言中的注释具有不同的语法;它们是以REM[ARK]开头的行。/*comment*/在SQLPlus中不是注释。

相反,在SQLPlus中,斜杠/作为新行上的第一个字符意味着重复最后一个SQL命令(如果在此之后您有SQLPlus命令,如DESCRIBE或COLUMN,这些将被忽略)。斜杠之后的所有内容都被忽略。为了让自己相信这一点,再试一次,但将注释行改为/*comment*(删除第二个斜杠)。您将看到相同的结果。

然后你有命令EXIT,但是因为它后面没有斜杠,所以它不被视为一个完整的命令。如果我在SQLPlus窗口中复制并粘贴您的代码,就会得到下面的屏幕截图。但是,如果此时按ENTER(或者如果这是在sql脚本中,而不是从文本编辑器复制和粘贴的),SQLPlus窗口将关闭。

希望这对你有帮助!

SQL> select sysdate from dual
  2  /
SYSDATE
----------
2016-08-12
1 row selected.
Elapsed: 00:00:00.00
SQL> /*comment*/
SYSDATE
----------
2016-08-12
1 row selected.
Elapsed: 00:00:00.01
SQL> EXIT

最新更新