5.4.12 <OIID>

<OIID>の定義について説明します。

検索対象になるオブジェクトは,OIIDによって識別されます。OIIDの値は,データベース上では,各オブジェクトのdmaProp_OIIDプロパティに,String型の16バイトの値として格納されています。

一方,Java クラスライブラリでは,OIIDを「dma://」で始まるOIID文字列(DMA URL)で表記します。これは,実際にdmaProp_OIIDプロパティに格納されている値とは異なります。このため,Java クラスライブラリで使用するOIID文字列を直接edmSQL文に指定しても,OIIDを対象にした検索はできません。このため,OIID文字列を指定する場合には,OIID変換インターフェースを使用して,dmaProp_OIIDプロパティの値に変換する必要があります。

なお,検索結果としてdmaProp_OIIDプロパティの値を取得する場合は,Java クラスライブラリで使用するOIID文字列に変換されたものが取得できるため,明示的に変換する必要はありません。

<この項の構成>
(1) OIID文字列をdmaProp_OIIDプロパティの値に変換する指定(OIID変換インターフェース)
(2) OIID変換インターフェースの使用例

(1) OIID文字列をdmaProp_OIIDプロパティの値に変換する指定(OIID変換インターフェース

検索条件にOIID文字列を指定する場合に,指定したOIID文字列をdmaProp_OIIDプロパティの値に変換するためには,次のどちらかの方法を使用します。

(2) OIID変換インターフェースの使用例

ここでは,OIID変換インターフェースの使用例について説明します。

OIID変換インターフェースを使用しないでOIIDを検索しようとしている例
dmaProp_OIIDプロパティの値とOIID文字列の形式は異なるため,検索結果が「真」になる(検索結果が取得できる)ことはありません。

SELECT  myProp_Foo
FROM    myClass
WHERE  dmaProp_OIID = 'dma:///xxx/xxx/xxx…x'

oiid関数を使用してOIIDを検索する例
検索結果が「真」になる(検索結果が取得できる)可能性があります。

SELECT  myProp_Foo
FROM    myClass
WHERE  dmaProp_OIID = oiid('dma:///xxx/xxx/xxx…x')

<?パラメタ>を使用してOIIDを検索する例
検索結果が「真」になる(検索結果が取得できる)可能性があります。

SELECT  myProp_Foo
FROM    myClass
WHERE  dmaProp_OIID = ?