5.12.2 検索条件に指定する値の制限事項
(1) FROM句に関する制限事項
- ロックを設定するインターフェースを使用した場合に,ロック種別にwriteロック(定数:DbjDef.LOCK_WRITE)を指定した場合に,次の条件で検索を実行すると,データベースエラーになります。
- 主問い合わせでFROM句に指定したクラスを,副問い合わせのFROM句に指定した条件
- 主問い合わせでクラスの結合を指定した条件
(2) SELECT句に関する制限事項
- 副問い合わせのSELECT句に指定できるプロパティは一つです。複数指定した場合は,edmSQL構文解析エラーになります。
また,ここで指定できるプロパティのデータ型も,副問い合わせで指定している<述語>の規則に従います。不正なデータ型のプロパティを指定した場合は,edmSQL構文解析エラーになります。
- SELECT句に文字列型のプロパティを指定して重複排除をする場合,SELECT句には255バイト以内で定義している文字列型のプロパティを指定してください。定義が255バイトを超える文字列型のプロパティを指定した場合,重複排除は実行できません。実行した場合,データベースエラーになります。
- ロックを取得するインターフェースを使用する場合に,ロックの種別にwriteロック(定数:DbjDef.LOCK_WRITE)を指定して,次の条件での検索を実行すると,データベースエラーになります。
- 主問い合わせに重複排除(DISTINCT)を指定した条件
- 主問い合わせにCOUNT関数を指定した条件
- 基本単位がVariableArray型のプロパティを指定して,重複排除を指定すると,edmSQL構文解析エラーになります。
- 基本単位がVariableArray型のプロパティのヒット件数をCOUNT関数で取得しようとすると,データベースエラーになります。
(3) WHERE句に関する制限事項
- WHERE句に文字列定数を使用した条件を指定する場合,255バイト以内で指定してください。制限を超えて指定した場合は,データベースエラーになります。
- WHERE句に文字列型のプロパティを指定する場合は,255バイト以内で定義されたプロパティを指定してください。制限を超えたプロパティを指定した場合は,データベースエラーになります。
- WHERE句で指定する論理演算のネスト数は,255個以内で指定してください。255個を超えた場合は,データベースエラーになります。
(4) ORDER BY句に関する制限事項
- ORDER BY句で指定できるSELECT句でのプロパティのインデクス,またはプロパティは,255個以内で指定してください。255個を超えた場合は,データベースエラーになります。
- ORDER BY句に文字列型のプロパティを指定する場合は,255バイト以内で定義されたプロパティを指定してください。制限を超えたプロパティを指定した場合は,データベースエラーになります。
(5) 検索条件として指定できる値についての制限
- 検索条件として指定するプロパティの値や,全文検索で指定できる文字については,制限があります。検索条件として指定できるクラスやプロパティについては,「4.4 検索対象になる文書空間オブジェクト」を参照してください。また,edmSQL文に指定できる値については,「5.4 字句規則」を参照してください。
(6) オペレータに指定する値についての制限
- 次のような演算を指定した場合は,データベースエラーになります。
- 比較演算の両辺に値を指定した検索は,データベースエラーになります。
例えば,<比較演算子>「=」の両辺に,<リテラル>または<?パラメタ>を指定した検索などはできません。
- 右辺に値を指定する副問い合わせの<In述語>の左辺に,値を指定した検索はデータベースエラーになります。
例えば,副問い合わせに使用する<In述語>の両辺に<文字列リテラル>を指定した検索などはできません。
- /演算子の右辺(除数)として,0を指定すると,データベースエラーになります。
(7) ?パラメタに関する制限事項
<?パラメタ>に文字列を指定する場合は,32,000バイト以内の文字列を指定してください。制限を超えて指定した場合は,データベースエラーになります。
(8) 問い合わせ指定全体に関する制限事項
一つの問い合わせ指定内で,DISTINCTを2回以上指定することはできません。