ヘッダーをスキップ
Oracle Rdb SQLリファレンス・マニュアル
リリース7.2
E06178-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

2.4 リテラル

リテラルは定数とも呼ばれ、値を指定します。

次の図はリテラルの書式を示しています。


リテラルは値式の一種です(第2.6節を参照)。通常の値式を受け入れないSQL句の多くで、リテラル値が求められます。リテラル値は、数値、文字列または日付として使用できます。また、SQLでは、次のようにリテラルを示すキーワードが提供されています。

次の項では、それぞれのリテラルの種類について説明します。

2.4.1 数値リテラル

数値リテラルとは、SQLで10進数の値として解釈される数字の文字列のことです。数値リテラルは、次のものとして使用できます。

次の構文は、数値リテラルの書式を示しています。


SQLでは柔軟に数値を表現できます。単項の+および-を使用でき、またあらゆる書式の10進数表記を使用できます。有効な数値文字列の例を次に示します。

123
34.9
--123
.25
123.
0.33889909
6.03E+23
6.03E--23

数値リテラルを使用して列またはパラメータに値を代入する場合、列またはパラメータのデータ型によって、代入可能な最大値、および小数点の右側への値の代入が可能かどうかが決まります。列またはパラメータのデータ型が、数値リテラルにより示されるデータ型と異なる場合、リテラルが列またはパラメータのデータ型に変換されます。

第2.3節には、それぞれのSQLのデータ型に代入される数値リテラルの値の範囲が記載されています。

2.4.2 文字列リテラル

SQLでは、次の種類の文字列リテラルが認識されます。

これらの文字列リテラルの種類の詳細は、第2.4.2.1項および第2.4.2.2項を参照してください。

2.4.2.1 引用符付き文字列リテラル

引用符付き文字列リテラルとは、一重引用符で囲まれた印刷可能文字で構成される文字列のことです。文字列の最大長は1,024オクテットです。修飾されていない文字列では、そのセッションのリテラル・キャラクタ・セットの文字のみを使用している必要があります。

印刷可能なASCII文字は、次の文字で構成されています。

DEC_MCSの印刷可能文字のリストは、OpenVMSのユーザー向けドキュメントを参照してください。 サポート対象のその他のキャラクタ・セットの印刷可能文字のリストは、そのキャラクタ・セットの規格を参照してください。各キャラクタ・セットの規格については、第2.1節を参照してください。

一対の一重引用符を使用して文字列リテラルを囲みます。二重引用符を使用すると、二重引用符は規格外であることを示す情報メッセージが表示されます。引用ルールがANSI/ISO SQLに設定されている場合、二重引用符はデリミタ付き識別子として渡されます。引用ルール設定の詳細は、「SET QUOTING RULES文」を参照してください。引用符の使用時には、次のルールに従ってください。

表2-14は、文字列リテラルにおける引用符の使用方法を示しています。

表2-14 リテラルでの引用符の埋込み方法
文字列 解釈される文字列
'UNQUOTED LITERAL' UNQUOTED LITERAL
'"A LITERAL WITH QUOTES"' "A LITERAL WITH QUOTES"
'''ANOTHER ONE''' 'ANOTHER ONE'
'RICHARD "RICK"SMITH''S' RICHARD "RICK"SMITH'S
'Richard ''Rick''Smith ''s' Richard 'Rick'Smith's
'''' ''''' ' ''''
'"' "
"JONES' 無効

注意

SQLでは、文字列リテラルの大文字と小文字が区別されます。つまり、NAME = 'JONES'とNAME = 'Jones'では結果が異なります。比較の詳細は、第2.7節を参照してください。

2.4.2.1.1 キャラクタ・セットで修飾された引用符付き文字列リテラル

キャラクタ・セット名で修飾された引用符付き文字列リテラルを使用できます。文字列には、指定されたキャラクタ・セットの文字のみを使用する必要があります。

キャラクタ・セットで修飾された文字列リテラルは、アンダースコア(_)で始まり、その後にサポートされているキャラクタ・セット名および引用符付き文字列が続きます。リテラルの外側で空白は使用できません。

次の例は、DEC_MCSおよびDEC_KANJIで文字列を修飾する方法を示しています。


_ DEC_MCS 'Blue'

_ DEC_KANJI 'Blue'

サポートされているキャラクタ・セット名は、第2.1節を参照してください。

2.4.2.1.2 各国語キャラクタ・セットで修飾された引用符付き文字列リテラル

各国語文字列リテラル、つまり各国語キャラクタ・セットで修飾された引用符付き文字列リテラルを使用できます。文字列には、各国語キャラクタ・セットの文字のみを使用する必要があります。

各国語文字列リテラルは、文字Nで始まり、その後に引用符付き文字列が続きます。リテラルの外側で空白は使用できません。

次の例は、各国語キャラクタ・セットで文字列を修飾する方法を示しています。


N'Blue'

各国語キャラクタ・セットの詳細は、第2.1.7項を参照してください。

2.4.2.2 16進数文字列リテラル

16進数文字列リテラルはXで始まり、その後に一重引用符で囲まれた最大16文字の文字列が続きます。この種類の文字列リテラルでは、引用符内で文字の16進値を指定することにより、印刷不可能なASCII文字を表すことができます。

ASCII文字を表すには、1文字ごとに2桁の16進数が必要となります。このため、引用符内の文字数は偶数にする必要があります。16進数文字列リテラルで有効な文字は、0〜9およびAF(大文字または小文字)のみです。

次の例では、16進数文字列リテラルで2つの削除文字が表されています。ASCIIの削除文字の16進値はFFです。


X'FFFF'

2.4.3 日時リテラル

SQL文でリテラルを使用した日時データ型を参照する場合は、リテラルの前にデータ型名を記述し、一重引用符でリテラルを囲む必要があります。すべてのフィールドに対して、それぞれのフィールドの有効範囲内にある値を指定する必要があります。

次の構文は、日時リテラルの書式を示しています。




注意

構文記述子ydhおよびsは、それぞれ年、日、時間および秒を示すフィールド内の1桁の数字を表します。文字mは、yの後に続く場合は月を示す1桁の数字、それ以外の場合は分を示す1桁の数字を表します。小数秒は、小数点の後の数字で表します。

日時リテラルの構文は、次のとおりです。