SQLclまたはSQL*Plusで複数行のクエリを実行しようとして、「不明なコマンド」などのエラーが発生し続けるが、SQL Developerで実行してもそのようなエラーが発生しない場合は、この投稿が役立つ可能性があります。
デフォルトでは、SQLclおよびSQL*PlusはSQLステートメントに空白行を許可しません。ただし、これはSET SQLBLANKLINESで変更できます。 コマンド。
構文
構文は次のようになります:
SET SQLBL[ANKLINES] {ON | OFF}
これは、完全なSQLBLANKLINESのいずれかを使用できることを意味します またはその省略形SQLBL 、およびONのいずれかに設定できます またはOFF 。
OFF デフォルトでは。 ONに設定する コードに空白行を含めることができます。
例
まず、現在の設定を確認します:
SHOW SQLBLANKLINES 結果:
sqlblanklines OFF
現在、空白行のサポートは無効になっています。
次のSQLステートメントがあるとします。
SELECT 3 * 10
FROM DUAL; これをコピーしてSQLclに貼り付けて実行しようとすると、次のようになります。
SQL> SELECT 3 * 10 2 3* FROM DUAL; Error starting at line : 1 in command - SELECT 3 * 10 Error at Command Line : 1 Column : 13 Error report - SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected" *Cause: *Action: Error starting at line : 1 in command - FROM DUAL Error report - Unknown Command
空白行が原因で、ステートメントは失敗します。
SQLBLANKLINESを設定します ONへ
それでは、SQLBLANKLINESを設定しましょう。 ONへ :
SET SQLBLANKLINES ON そして、クエリを再度実行します:
SELECT 3 * 10
FROM DUAL; これが私が得たものです:
SQL> SELECT 3 * 10
2
3* FROM DUAL;
3*10
_______
30 今回はステートメントが成功します。
速記形式
または、短縮形のSQLBLを使用することもできます。 。
現在の設定を返す例:
SHOW SQLBL 結果:
sqlblanklines ON
スイッチをオフにして、もう一度表示する例:
SET SQLBL OFF
SHOW SQLBL 結果:
sqlblanklines OFF