sql >> データベース >  >> RDS >> Oracle

SET SQLBLANKLINES:SQLclおよびSQL*Plusで空白行を許可する方法

    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

    1. Psql出力で結果セットの装飾を非表示にする方法

    2. Oracle11g-ピボット解除

    3. PHP 7でMySQLi拡張機能を有効にするにはどうすればよいですか?

    4. SQL Server ROWCOUNT_BIG()