bennyfong wrote:
when I switch Oracle 8.1.7 to 9.2.0, it seems need not change hibernate dialect, it works normally. So what is different, why hibernate use two type of dialect in kinds of version Oracle?
Actually OracleDialect extends Oracle9Dialect and overides createOuterJoinFragment() (since Oracle 8 has its own notations of outer joins (+), 9 has 'join keyword'), and createCaseFragment (uses oracle 'decode' to emulate 'case' statement AFAIR). See source code, it's good quality and pretty self explaining. It's why I prefer open source - you can always refer to source code and see what's going under the hood.
Artur