- :CREATE TABLE人(
- :名稱CHAR(10),
- :
- :爲ssn INTEGER);
,並將其保存到文件「a.sql」(冒號表示行首,是不是在實際的代碼)。
如果我再通過在SQL輸入「@a」運行* Plus命令提示符下,它會告訴我,以「ssn」開頭的行不會被識別爲命令,並且會被忽略。
從我收集的內容看,如果sqlplus在一行中遇到多個換行符時似乎會終止命令。這是一個準確的陳述嗎?如果是這樣,有誰知道這是否有必要/爲什麼選擇這樣做?
,並將其保存到文件「a.sql」(冒號表示行首,是不是在實際的代碼)。
如果我再通過在SQL輸入「@a」運行* Plus命令提示符下,它會告訴我,以「ssn」開頭的行不會被識別爲命令,並且會被忽略。
從我收集的內容看,如果sqlplus在一行中遇到多個換行符時似乎會終止命令。這是一個準確的陳述嗎?如果是這樣,有誰知道這是否有必要/爲什麼選擇這樣做?
我不知道爲什麼,但一個完全空白的行終止SQL * Plus中的命令。
從 the SQL*Plus docs報價:
結束一個SQL命令: 您可以通過以下三種方式之一結束SQL命令:
您也可以更改空行與SET SQLBLANKLINES被視爲
SQLBL [ANKLINES] {ON | OFF}
控制SQL * Plus是否允許一個SQL命令或腳本中的空行。 ON將空白行和新行解釋爲SQL命令或腳本的一部分。 OFF(默認值)不允許空白行或SQL命令或腳本或腳本中的新行。
輸入BLOCKTERMINATOR停止SQL命令輸入,但不運行SQL命令。輸入SQLTERMINATOR字符以停止SQL命令條目並運行SQL語句。
默認情況下,SQLPlus會在輸入空行時終止(但不執行)語句。它一直這樣做。在屏幕編輯器和查詢工具出現之前,這可能看起來是一個好主意。
您可以在
在這種情況下,你必須輸入一個符合只是一個句號終止(但不執行)的聲明改變與
集SQLBLANKLINES默認行爲。
但是,如果你是想插入多行文本的VARCHAR2或CLOB字段,你可以使用 CHR(10)
insert into t values ('Hello,'||chr(10)||chr(10)||' How are you?');
insert into t values (
'Hello,
How are you');
將無法正常工作的原因如上所述。