在sqlplus中執行語句時候報錯誤SP2-0734: 未知的命令開頭"id varchar..."
提交給維護部門批量修改資料的檔案,在sqlplus中執行時候報錯
SP2-0734: unknown command beginning "where t.bg..." - rest of line ignored.
SQL> 19‘,‘YYYY-MM-dd‘),0); SP2-0734: unknown command beginning "19‘,‘YYYY-..." - rest of line ignored.
等等。
【原因分析及解決方法】
原來Sql*plus中, 不允許一條sql語句內有空行(當然,sql語句間有空行沒有關係), 這在從其它地方拷貝指令碼到sql*plus中執行時很麻煩.
原因是sqlplus遇到空行就認為是語句結束了.
其實要改變這種現象, 只要使用SQLBLANKLINES引數就可以了
[email protected]> SET SQLBLANKLINES ON
附加例子:
SQL> @1.sql
SP2-0734: 未知的命令開頭 "id varchar..." - 忽略了剩餘的行。
SP2-0734: 未知的命令開頭 "name varch..." - 忽略了剩餘的行。
SP2-0734: 未知的命令開頭 "age varcha..." - 忽略了剩餘的行。
SP2-0042: 未知命令 ")" - 其餘行忽略。
SP2-0044: 要獲取已知命令的列表, 請輸入 HELP;
輸入 EXIT 可退出。
提交完成。
SQL>
其中1.sql中的內容為:
create table person
(
id varchar(32) not null primary key ,
name varchar(20) not null ,
age varchar(20) not null
)
commit ;
上述一條sql語句內有空行。
============================================================
解決sqlplus裡執行@sql.sql發生的錯誤現象 |
【賽迪網-IT技術報道】這篇論壇文章(賽迪網技術社群)著重介紹了sqlplus裡執行@sql.sql發生的錯誤現象的解決方法,更多詳細內容請參考下文: 昨天準備下班,應用打來電話說有事過去看個問題, 過去一看,發現是在sqlplus裡執行SQL檔案出現了錯誤,錯誤如下: SQL>@sql.sql SP2-0734:unknown command beginning "sql.sql" - rest of line ignored. 當時沒有解決,出現這個錯誤使用的是NetTerm終端工具,懷疑是終端或環境變數設定的問題,使用windows自帶的telnet工具登入到遠端伺服器還是出現同樣的問題,最後,換臺機器使用crt登入後問題解決。 今天,在網上查查了原因還是系統環境變數的設定問題,使用stty kill ^U可以解決: stty erase "^H" kill "^U" intr "^C" eof "^D" 如果是由於指令碼檔案sql.sql裡的某些sql語句內存在空行而報上述錯誤的話,可以使用如下命令解決: set sqlblanklines on 參考: sqlplus
@ sp2-0734 百度
|