为什么ORACLE在命令中不允许连续的换行符?

问题描述

我不知道为什么,但是一个完全空白的行会终止sql * Plus中的命令。

引用SQL *Plus文档

:您可以通过以下三种方式之一结束sql命令:

  • 用分号(;)
  • 单独在一行上加上斜杠(/)
  • 用空行

您还可以更改使用SET sqlBLANKLInes处理空白行的方式

控制sql * Plus是否在sql命令或脚本中允许空行。ON将空行和换行解释为sql命令或脚本的一部分。OFF,认值,不允许在sql命令或脚本或脚本中出现空行或换行。

输入BLOCKTERMINATOR以停止sql命令输入,而无需运行sql命令。输入sqlTERMINATOR字符以停止sql命令输入并运行sql语句。

解决方法

我写的:

CREATE TABLE Person ( 
name CHAR(10),ssn INTEGER);

并将其保存到文件“ a.sql”。

如果我随后通过在SQL * Plus命令提示符下键入“ @a”来运行它,它将告诉我以“ ssn”开头的行不会被识别为命令,因此将被忽略。

据我所知,如果sqlplus在一行中遇到多个换行符,它似乎会终止命令。这是正确的说法吗?如果是这样,有谁知道这是否有必要/为什么选择这样做?