我写道:
并将其保存到文件“a.sql”(冒号表示行的开头,不在实际代码中。)
如果我在SQL * Plus命令提示符下键入“@a”然后运行它,它将告诉我以“ssn”开头的行不被识别为命令,并被忽略。
从我收集的内容来看,如果sqlplus连续遇到多个换行符,似乎会终止命令。这是一个准确的陈述吗?如果是这样,有人知道这是否必要/为什么选择这样做?
答案 0 :(得分:16)
我不知道原因,但是一个完全空白的行终止了SQL * Plus中的命令。
结束SQL命令: 您可以通过以下三种方式之一结束SQL命令:
您还可以使用SET SQLBLANKLINES
更改空白行的处理方式SQLBL [ANKLINES] {ON | OFF}
控制SQL * Plus是否允许SQL命令或脚本中的空行。 ON将空行和新行解释为SQL命令或脚本的一部分。 OFF(默认值)不允许SQL命令或脚本或脚本中出现空行或换行。
输入BLOCKTERMINATOR以停止SQL命令输入而不运行SQL命令。输入SQLTERMINATOR字符以停止SQL命令输入并运行SQL语句。
答案 1 :(得分:5)
默认情况下,SQLPlus会在输入空行时终止(但不执行)语句。它一直都是这样做的。在屏幕编辑器和查询工具之前的几天,这似乎是一个好主意。
您可以使用
更改默认行为在
上设置SQLBLANKLINES在这种情况下,你必须输入一个只有句号的行来终止(但不执行)一个语句。
答案 2 :(得分:0)
但是如果您想在varchar2或clob字段中插入多行文本,可以使用 CHR(10)
insert into t values ('Hello,'||chr(10)||chr(10)||' How are you?');
insert into t values (
'Hello,
How are you');
由于上述原因而无效。