機能
NULLでない値を指定します。
記述形式
文字 → “2.1.1 文字”
文字列定数に指定できる文字のコードは、EUCコードのコードセット0(1バイト)、EUCコードのコードセット1(2バイト)、EUCコードのコードセット2(2バイト)およびEUCコードのコードセット3(3バイト)です。
文字列定数に各国語文字を指定することができます。
文字列定数に引用符(')を指定するときは、引用符(')を2つ連続して記述します。
文字列定数に指定できる文字コード系は、シフトJISコードのコードセット0(1バイト)、シフトJISコードのコードセット1(2バイト)、シフトJISコードのコードセット2(2バイト)およびシフトJISコードのコードセット3(2バイト)です。
文字列定数に各国語文字を指定することができます。
文字列定数に引用符(')を指定するときは、引用符(')を2つ連続して記述します。
例1
'TOKYO' 'T123'
例2
'JAPAN''TOKYO'''→結果は、JAPAN'TOKYO'になります。
各国語文字列定数を取り扱う文字コード系としてEUCコードまたはシフトJISコードを使用した場合
各国語文字列定数を取り扱う文字コード系としてUNICODEを使用した場合
指定できる各国語文字の文字コード系は、EUCコードのコードセット1(2バイト)およびEUCコードのコードセット3(3バイト)です。
注意
各国語文字は、EUCコードの2バイトコードおよび3バイトコードはCOBOL_EUCに変換され、2バイトコードのままデータとして扱われ、比較の対象となったり、データベースへの格納の対象となります。
指定できる各国語文字の文字コード系は、シフトJISコードのコードセット1(2バイト)、コードセット2(2バイト)、またはコードセット3(2バイト)です。
指定できる各国語文字の文字コード系は、UCS-2の文字です。補助文字(1~16面の4バイト文字)はUCS-2の2文字として格納されます。
補助文字のコード変換はUnicode 4.1で変換します。Unicode 4.1の補助文字のコード変換は、文字列型ではUTF-8の4バイト、各国語文字列型ではUCS-2の2文字として扱われます。ただし、以下のいずれかに該当する場合、Unicode 2.0でコード変換を行います。
1)Symfoware Server 9.1.0以前のバージョンレベル
2)Unicode 4.1に対応していない以下の製品をインストールしている場合
<Windows版>
・SystemWalker/CharsetMGR-M V5.1L10以降
・Interstage Charset Manager V8.2以前
<Linux版>
・Interstage Charset Manager V8.2以前
<Solaris 32ビット版>
・Interstage Charset Manager V8
Unicode 2.0とUnicode 4.1の補助文字のコード変換はサロゲートペア領域の扱いが異なります。Unicode 4.1はUNICODEの補助文字を、UTF-8に変換すると、4バイト文字に変換します。Unicode 2.0はUTF8として3バイトまでしか扱えません。そのため、UNICODEの補助文字をUTF-8に変換すると、3バイト文字のペア(3バイト×2)に変換されます。
サーバとクライアントで、Unicode 4.1とUnicode 2.0のコード変換環境が混在する場合、クライアント用の動作環境ファイルのCHARACTER_TRANSLATEの指定により、Unicode 2.0でコード変換を行う場合があります。UNICODEの補助文字をUnicode 4.1で扱いたい場合、クライアント用の動作環境ファイルのCHARACTER_TRANSLATEにUnicode 4.1のコード変換環境を指定してください。
例
N'東京'
日時定数
DATEで始まる定数を、“日付定数”と呼びます。
日付定数は、年から日までの10文字の日付を格納することができます。年から日のそれぞれを日時フィールドYEAR、MONTH、DAYといいます。日付定数の日時フィールドの有効値を以下に示します。
日時フィールド | 意味 | 有効値 |
---|---|---|
YEAR | 年 | 1 ~ 9999 |
MONTH | 月 | 1 ~ 12 |
DAY | 日 | 1 ~ 31 |
日付定数
DATE '2007-04-10'
時刻定数
TIME '12:10:40'
時刻印定数
TIMESTAMP '2007-04-10 12:10:40'
数字 → “2.1.1 文字”
時間隔定数の年、月、日、時、分、秒は、日時値を指定します。日時値は、開始フィールドおよび単一日時フィールドを除き、暦上存在する自然な日時値であることが必要です。
日時フィールドには順位があります。その順位は、最上位のものから最下位のものの順に、YEAR、MONTH、DAY、HOUR、MINUTE、SECONDです。
時間隔定数は、年月クラスと日時クラスに分類されます。各クラスにまたがるような日時フィールドを持つような指定はできません。
年月クラスは、開始フィールドおよび終了フィールドにより指定された年および月からなる連続する日時フィールドを含みます。または、単一日時フィールドにより指定される年または月の単一日時フィールドを含みます。時間隔定数の年月クラスを以下に示します。
開始フィールド | 終了フィールド |
---|---|
YEAR | MONTH |
単一日時フィールド |
---|
YEAR |
MONTH |
日時クラスは、開始フィールドおよび終了フィールドにより指定された日、時、分および秒からなる連続する任意の日時フィールドを含みます。または、単一日時フィールドにより指定される日、時、分および秒の単一日時フィールドを含みます。時間隔定数の日時クラスを以下に示します。
開始フィールド | 終了フィールド |
---|---|
DAY | HOUR |
HOUR | MINUTE |
MINUTE | SECOND |
単一日時フィールド |
---|
DAY |
HOUR |
MINUTE |
SECOND |
時間隔定数の最初の日時フィールドはn桁の整数です。nは時間隔先行フィールド精度で指定された符号なし整数です。時間隔先行フィールド精度を省略した場合は、以下のようになります。時間隔定数の先行フィールド精度の省略値を以下に示します。
開始フィールド | 時間隔定数の先行フィールド精度の省略値 |
---|---|
YEAR | 2 |
MONTH | 2 |
DAY | 2 |
HOUR | 2 |
MINUTE | 2 |
SECOND | 2 |
時間隔定数の2番目以降の日時フィールドに許される値は以下のように制約されています。時間隔定数の日時フィールドの有効値を以下に示します。
日時フィールド | 有効値 |
---|---|
MONTH | 0 ~ 11 |
HOUR | 0 ~ 23 |
MINUTE | 0 ~ 59 |
SECOND | 0 ~ 59 |
年-月型
INTERVAL '1-6' YEAR TO MONTH
日-秒型
INTERVAL '10 12:10:40' DAY TO SECOND
時間隔先行フィールド精度を指定
INTERVAL '100:29' MINUTE(3) TO SECOND
構文要素の構成
数字 → “2.1.1 文字”
真数定数は、真数のデータを指定します。データ型は真数型です。
真数定数は、指定する値によって、扱われるデータ型が変わります。データ型について以下に示します。
要素指定 | 桁数 | 指定される値 | データ型 |
---|---|---|---|
小数点なし | 1 ~ 5 | -32768 ~ +32767 | SMALLINT |
5 ~ 10 | -2147483648 ~ -32769 | INTEGER | |
10 ~ 18 | -999999999999999999 ~ -2147483649 | DEC(精度,0) | |
19以上 | ----- | 構文エラー | |
小数点あり | 1 ~ 18 | -999999999999999999. ~ +999999999999999999. | DEC(精度,位取り) |
19以上 | ----- | 構文エラー |
注1) 桁数に小数点は含みません。
注2) 精度は数字の数、位取りは小数点以下の数字の数のことです。
真数定数
+15.5
概数定数
-20.4E5