CLPPlus のエスケープ文字

CLPPlus コマンドおよび照会の中で、エスケープ文字を使用できます。

説明

CLPPlus 中では、アンパーサンド (&) 文字を使用して、SQL ステートメントの変数を置換できます。 エスケープ文字を使用して、入力値中のアンパーサンド文字 (例えば、 "AT&M") をエスケープして、置換がなされないようにすることができます。

エスケープ文字を使用して、文字 "$" および "%" をエスケープすることもできます。これらの文字は、CLPPlus 中でシェルおよび環境変数の参照に使用されるものです。

エスケープ文字は、SET コマンドで定義できます。 デフォルトのエスケープ文字は「¥」です。 SET コマンドについて詳しくは、関連する解説書を参照してください。

  1. この例は、デフォルトのエスケープ文字を使用して "&M" が置換変数として扱われないようにする方法を示しています。
    SQL> set escape ON
    SQL> insert into testtab values('AT¥&M'); 
    Db250000I: The command completed successfully.
    
    SQL> select * from testtab;
    TEXT
    -------------------
    AT&M
  2. この例は、ユーザー定義のエスケープ文字を使用して "&G" が置換変数として扱われないようにする方法を示しています。
    SQL> set escape ^
    SQL> insert into testtab values('L^&G');
    Db250000I: The command completed successfully.
    
    SQL> select * from testtab;
    TEXT
    -------------------
    AT&M
    L&G
  3. この例は、エスケープ文字が使用されていない時の動作を示しています。 "&V" は置換変数として扱われ、ユーザーは "Planet" の入力値を提供する必要があります。
    SQL> set escape OFF
    SQL> insert into testtab values('Smarter &V');
    Enter a value for variable V: Planet
    
    Original statement: insert into testtab values('Smarter &V')
    New statement with substitutions: insert into testtab values('Smarter Planet')
    Db250000I: The command completed successfully.
    
    SQL> select * from testtab;
    TEXT
    -------------------
    AT&M
    L&G
    Smarter Planet
  4. この例は、エスケープ文字が使用されていない時の動作を示しています。 "&V" は置換変数として扱われ、ユーザーは "Gene" の入力値を提供する必要があります。
    SQL> set escape OFF
    SQL> insert into testtab values('Blue ¥&V');
    Enter a value for variable V: Gene
    
    Original statement: insert into testtab values('Blue ¥&V')
    New statement with substitutions: insert into testtab values('Blue ¥Gene')
    Db250000I: The command completed successfully.
    
    SQL> select * from testtab;
    TEXT
    -------------------
    AT&M
    L&G
    Smarter Planet
    Blue ¥Gene
  5. この例は、エスケープ文字が使用されている時の動作を示しています。 "$100" は値として扱われ、シェルまたは環境変数としては扱われません。
    SQL> set escape ON
    SQL> insert into testsub values('¥$100');
    Db250000I: The command completed successfully.
    
    SQL> select * from testsub;
    TEXT
    -------------------
    $100
  6. この例は、エスケープ文字が使用されている時の動作を示しています。 "86%" は値として扱われ、シェルまたは環境変数としては扱われません。
    SQL> set escape ON
    SQL> insert into testsub values('86¥%');
    Db250000I: The command completed successfully.
    
    SQL> select * from testsub;
    TEXT
    -------------------
    $100
    86%