Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 言語の要素 » 定数

 

文字列リテラル

文字列リテラルとは、一重引用符 (') で囲まれ、シーケンスで並べられた文字のことです。たとえば、'Hello world' は CHAR 型の文字列リテラルです。バイト長は 11 であり、文字長も 11 です。

文字列リテラルは、文字列定数、リテラル文字列、または単に文字列とも呼ばれます。SQL Anywhere では、文字列リテラルをおすすめします。

引用符で囲んだ値の前に N を付けることによって、NCHAR 文字列リテラルを指定できます。たとえは、N'Hello world' は NCHAR 型の文字列リテラルです。バイト長は 11 であり、文字長も 11 です。NCHAR 文字列リテラル内のバイトは、データベースの CHAR 文字セットを使用して解釈され、その後 NCHAR に変換されます。構文 N'string' は、CAST( 'string' AS NCHAR ) の短縮形式です。

エスケープ・シーケンス

場合によっては、通常の方法では入力できない文字を文字列リテラルに配置する必要があります。たとえば、制御文字 (改行文字など)、一重引用符 (それ以外の場合、文字列リテラルの末尾を示す)、16 進のバイト値などです。このような場合、エスケープ・シーケンスを使用します。

次に、文字列リテラルにエスケープ・シーケンスを使用する例を示します。

  • 一重引用符は、文字列リテラルの開始と末尾を示す場合に使用されます。このため、文字列の一重引用符は、'John''s database' のように一重引用符を追加してエスケープする必要があります。

  • 16 進のエスケープ・シーケンスは、文字かバイナリ値かに関係なく使用できます。16 進のエスケープ・シーケンスは、バックスラッシュ、x に続けて 2 桁の 16 進数を指定します。16 進数値は、CHAR と NCHAR 両方の文字列リテラルで CHAR 文字セットの文字として解釈されます。コード・ページ 1252 の例 '123\x80' は、数字 1、2、3 に続けてユーロ通貨記号を表現しています。

  • 文字列内に改行を表すには、円記号と n (\n) を使用して 'First line:\nSecond line:' と指定します。

  • 円記号はエスケープ・シーケンスの開始を示すときに使用するため、文字列内の円記号は、'c:\\temp' のように円記号を追加してエスケープする必要があります。

NCHAR 文字列リテラルには、CHAR 文字列リテラルと同じ文字とエスケープ・シーケンスを使用できます。

文字列リテラルに直接入力できない Unicode 文字を使用する場合、UNISTR 関数を使用します。UNISTR 関数 [文字列]を参照してください。