一尘不染

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

sql

我写的:

CREATE TABLE Person ( 
name CHAR(10),

ssn INTEGER);

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

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

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


阅读 248

收藏
2021-03-17

共1个答案

一尘不染

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

引用SQL *Plus文档

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

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

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

SQLBL [ANKLINES] {ON | OFF}

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

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

2021-03-17