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