ヘッダーをスキップ

Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド リリース6.0 B25770-01 |
| 目次 | 索引

前へ | 次へ |

## 値の比較

TimesTenでは、値は次のように比較されます。

- CHARとVARCHARの組合せを含む2つの文字列を比較する場合、実際は、長い文字列の長さに合わせて短い文字列にASCII空白文字が埋め込まれます。空白が埋め込まれた文字列と長い文字列の長さが同じであれば、2つの文字列は正しく比較されます。
- この後の項に説明する制限の範囲で、NCHARとNVARCHARを組み合わせた文字列の比較がサポートされます。これ以外のデータ型(CHARとVARCHARを含む)とNCHARを比較することはできません。
- NCHARとNVARCHARの組合せを含む2つの文字列を比較する場合、実際は、長い文字列の長さに合わせて短い文字列にUnicode空白文字（U+0020 SPACE）が埋め込まれます。空白が埋め込まれた文字列と長い文字列の長さが同じであれば、2つの文字列は正しく比較されます。
- BINARYとVARBINARYの組合せを含む2つのバイナリの値を比較する場合、実際は、長い値の長さに合わせて短い値に0（ゼロ）が埋め込まれます。0（ゼロ）が埋め込まれた値と長い値の長さが同じであれば、2つの値は正しく比較されます。
- DATE、TIMEまたはTIMESTAMP型を、同じデータ型またはCHAR/VARCHAR型の項目と比較できます。CHAR/VARCHAR型とDATE、TIME、TIMESTAMP型を比較する場合、CHAR/VARCHARは、対応するDATE、TIMEまたはTIMESTAMP型に変換されます。比較処理は入力された順序で実行されます。
- 数値を比較する場合、比較する前に値は強制的に同じデータ型に変換されます。
- 正確な値と近似値を比較する場合、正確な値は近似値に変換されます。
- 精度が異なる2つの近似値を比較する場合、精度がより大きい値に合わせて精度が小さい値が変換されます。
- 2つの正確な値（いずれも非DECIMAL）を比較する場合、より精度の大きい値に合わせて精度の小さい値が変換されます。値がともにDECIMALであれば、変換の必要はありません(暗黙的に0（ゼロ）が埋め込まれます)。一方の値だけがDECIMALで、スケールが0（ゼロ）で精度が小さい場合、DECIMALは整数型（TINYINT、SMALLINT、INTEGER、BIGINT）に変換されます。それ以外の場合は、整数型がDECIMALに変換されます。