4.5.3 使用できるデータ型と演算子・関数・述語の関係

ここでは,edmSQL文で使用できるデータ型と演算子・関数・述語との関係について説明します。

<この項の構成>
(1) edmSQLで使用できるデータ型
(2) Boolean型
(3) Integer32型
(4) String型
(5) Object型
(6) Binary型

(1) edmSQLで使用できるデータ型

edmSQL文で使用できるデータ型は,次のとおりです。

なお,Id型は,edmSQLのデータ型としては提供しませんが,クラスやプロパティをIDで指定することはできます。

使用できるデータ型を,次の項目ごとに説明します。

(2) Boolean型

Boolean型は,値と評価の二つの概念を持ちます。それぞれに対して,TRUE,FALSE,UNKNOWNの三つの表現があります。

値としてのBoolean型
値として扱うBoolean型のデータ型は,物理的実体として存在します。これは,Boolean型のプロパティの値または定数値として表現します。
値には,TRUE,FALSE,UNKNOWNの三つの値があります。表現と評価の定数値は,SQLの概念にない,edmSQLで導入される概念で対応付けられます。
値としてのBoolean型の表現と定数値の対応を,次の表に示します。

表4-5 値としてのBoolean型の表現と定数値の対応

表現定数値
TRUE1
FALSE0
UNKNOWN2
評価としてのBoolean型
評価として扱うBoolean型のデータ型は,物理的な実体を持ちません。検索条件や検索関数の評価結果として返ってくるデータ型です。
評価には,真,偽,不定の三つの値があります。表現と評価の定数値は,SQLと同じ概念で対応付けられます。
評価としてのBoolean型の表現と定数値の対応を,次の表に示します。

表4-6 評価としてのBoolean型の表現と定数値の対応

表現評価の値
TRUE
FALSE
UNKNOWN不定

次に,Boolean型の値または評価を使用する表現形式,演算子,関数および述語について説明します。また,クラスライブラリの値との対応について説明します。

(a) 表現形式

値として扱うBoolean型の表現形式を次の表に示します。

表4-7 Boolean型の値の表現形式

定義
リテラルTRUE
FALSE
UNKNOWN
プロパティBoolean型のプロパティ
格納値:0,1,2
変数として指定できる値?パラメタ

Boolean型の評価には,直接の表現形式はありません。

(b) 演算子・関数

Boolean型の値を被演算子として扱う演算子・関数はありません。

Boolean型の評価を被演算子として扱う演算子を,次の表に示します。

表4-8 Boolean型の評価を被演算子として扱う演算子

演算子の種類演算子
論理演算子AND
OR
NOT

Boolean型の値を被演算子として扱う演算子・関数はありません。

(c) 述語
Boolean型の値
評価対象が,Boolean型の値である述語を次の表に示します。

表4-9 評価対象がBoolean型の値である述語

述語の種類述語
比較述語=
<>
In述語IN
Boolean型の評価
評価対象が,Boolean型の評価である述語を次の表に示します。

表4-10 評価対象がBoolean型の評価である述語

述語の種類述語
論理述語IS TRUE
(d) クラスライブラリのデータ型との対応

Boolean型の値と,クラスライブラリのデータ型との対応を,次の表に示します。

表4-11 Boolean型の値とクラスライブラリのデータ型との対応

データ型
DmaBoolean型DMA_TRUE(=1)
DMA_FALSE(=0)
DMA_UNKNOWN(=2)

Boolean型の評価に,クラスライブラリのデータ型と対応するものはありません。

(3) Integer32型

Integer32型で表現するのは,4バイト(32ビット)で表現できる符号付き整数値,または符号と数字文字列で表現する,整数リテラルです。

次に,Integer32型のデータ型を使用する表現形式,演算子,関数および述語について説明します。また,クラスライブラリとの値との対応についても説明します。

(a) 表現形式

Integer32型の値の表現形式を次の表に示します。

表4-12 Integer32型の値の表現形式

値の種類定義
リテラル符号および数字列
プロパティInteger32型のプロパティ
格納値:-2,147,483,648~2,147,483,647
変数として指定できる値?パラメタ
(b) 演算子・関数

Integer32型の値を被演算子または引数として扱う演算子および関数を次の表に示します。

表4-13 Integer32型の値を被演算子または引数とする演算子・関数

演算子・関数の種類演算子・関数
整数の四則演算子+
-
*
/
単項演算子+
-
数値関数ABS()
(c) 述語

評価対象がInteger32型の値である述語を次の表に示します。

表4-14 Integer32型の値を評価対象とする述語

述語の種類述語
比較述語=
<
>
<=
>=
<>
In述語IN
Between述語BETWEEN
(d) クラスライブラリのデータ型との対応

クラスライブラリのデータ型との対応を次の表に示します。

表4-15 Integer32型の値とクラスライブラリのデータ型との対応

データ型
DmaInteger32型-2,147,483,648~2,147,483,647

(4) String型

String型で表現するのは,DocumentBrokerで使用できる文字コードセットから構成される任意の長さの文字列です。DocumentBrokerで使用できる文字コードセットについては,「4.5.4(1) 文字コードセットとの対応」を参照してください。

次に,String型のデータ型を使用する表現形式,演算子,関数および述語について説明します。また,クラスライブラリとの値との対応についても説明します。

(a) 表現形式

String型の値の表現形式を,次の表に示します。

表4-16 String型の値の表現形式

値の種類定義
リテラル'任意の文字列'
詳細は,「4.5.4(6) <リテラル>」を参照してください。
プロパティString型のプロパティ
格納値:
定義長(dmaProp_MaximumLengthStringの値)以下の文字列
変数として指定できる値?パラメタ
(b) 演算子・関数

String型の値を被演算子または引数とする,演算子を次の表に示します。

表4-17 String型の値を被演算子または引数とする演算子

演算子の種類演算子
文字列結合演算子||
(c) 述語

評価対象がString型の値である述語を次の表に示します。

表4-18 String型の値を評価対象とする述語

述語の種類述語
比較述語=
<
>
<=
>=
<>
In述語IN
Between述語BETWEEN
Like述語LIKE
XLIKE
(d) クラスライブラリのデータ型との対応

クラスライブラリのデータ型との対応を次の表に示します。

表4-19 String型の値とクラスライブラリのデータ型との対応

データ型
pDmaString_T型4,294,967,295バイト以下の文字列

(5) Object型

Object型の値には,次の2種類があります。

オブジェクトリファレンスとは,DMAオブジェクトへのリファレンスを示すObject型プロパティの値です。例えば,dmaProp_ParentContainerプロパティの値がこれに当たります。

Object型の値のうち,オブジェクトリファレンスは検索条件に直接指定できません。検索で指定する場合には,オブジェクトリファレンスが示す実体であるDMAオブジェクトのOIID文字列を指定します。例えば,dmaProp_ParentContainerプロパティの値を指定したい場合,検索条件にはdmaProp_ParentContainerプロパティが参照している実体のDMAオブジェクト(Containerオブジェクトなど)のOIIDを指定します。

このOIID文字列の値は,検索実行時には,次のどちらかの方法でオブジェクトリファレンスであるObject型プロパティの値に変換する必要があります。

また,検索結果としてObject型の値を取得した場合は,oiidstr関数を使用して,そのObject型の値が表すオブジェクトリファレンスの実体であるオブジェクトのOIIDが取得できます。oiidstr関数の詳細については,「4.5.9(2)(c) <oiidstr関数>」を参照してください。

次に,Object型のデータ型を使用する表現形式および述語について説明します。また,クラスライブラリとのデータ型との対応についても説明します。Object型の値を使用する演算子および関数はありません。

(a) 表現形式

Object型の値の表現形式を,次の表に示します。

表4-20 Object型データの表現形式

値の種類定義
プロパティObject型のプロパティ(VariableArray型)
(b) 述語

評価対象がObject型の値である述語を次の表に示します。

表4-21 Object型の値を評価対象とする述語

述語の種類述語
比較述語=
In述語IN

なお,比較述語,IN述語では,オブジェクトリファレンス同士を比較します。

(c) クラスライブラリのデータ型との対応

クラスライブラリのデータ型との対応を次の表に示します。

表4-22 Object型の値とクラスライブラリのデータ型との対応

データ型
CdbrVariableArray型オブジェクト
(基本単位がVariableArray型)
次のように定義されているプロパティの値としてだけ対応します。
  • dmaProp_DataType = DMA_DATATYPE_OBJECT
  • dmaProp_Cardinality=255

Object型のデータ型の値としてVariableArray型プロパティ以外の値(オブジェクトリファレンス)を扱う場合は,<変換関数>を使用するか,?パラメタを使用してください。

(6) Binary型

Binary型で表現するのは,任意のバイト列を表現するデータです。主に,文書のコンテンツを表現します。関数の引数や,戻り値に指定する型としてだけ使用できます。プロパティの型としては定義できません。

Binary型が使用できる関数についての詳細は,「4.5.9 関数指定の構文規則」を参照してください。

(a) 表現形式

Binary型のデータの表現形式を,次の表に示します。

表4-23 Binary型のデータの表現形式

値の種類定義
変数?パラメタ

Binary型のデータは,?パラメタ以外の形式では表現できません。

(b) クラスライブラリのデータ型との対応

クラスライブラリのデータ型との対応を,次の表に示します。

表4-24 Binary型のデータとクラスライブラリのデータ型との対応

データ型
pDmaString_T型4,294,967,295バイト以下の文字列
注※
Binary型のデータはクラスライブラリではString型の値として取得できます。