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