/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.dialect;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.hibernate.LockOptions;
import org.hibernate.sql.ANSIJoinFragment;
import org.hibernate.sql.JoinFragment;

A dialect specifically for use with Oracle 10g.

The main difference between this dialect and Oracle9iDialect is the use of "ANSI join syntax".
Author:Steve Ebersole
/** * A dialect specifically for use with Oracle 10g. * <p/> * The main difference between this dialect and {@link Oracle9iDialect} * is the use of "ANSI join syntax". * * @author Steve Ebersole */
public class Oracle10gDialect extends Oracle9iDialect {
Constructs a Oracle10gDialect
/** * Constructs a Oracle10gDialect */
public Oracle10gDialect() { super(); } @Override public JoinFragment createOuterJoinFragment() { return new ANSIJoinFragment(); } @Override public String getCrossJoinSeparator() { return " cross join "; } @Override public String getWriteLockString(int timeout) { if ( timeout == LockOptions.SKIP_LOCKED ) { return getForUpdateSkipLockedString(); } else { return super.getWriteLockString( timeout ); } } @Override public String getWriteLockString(String aliases, int timeout) { if ( timeout == LockOptions.SKIP_LOCKED ) { return getForUpdateSkipLockedString( aliases ); } else { return super.getWriteLockString( aliases, timeout ); } } @Override public String getForUpdateSkipLockedString() { return " for update skip locked"; } @Override public String getForUpdateSkipLockedString(String aliases) { return getForUpdateString() + " of " + aliases + " skip locked"; } @Override public ResultSet getResultSet(CallableStatement statement, int position) throws SQLException { return (ResultSet) statement.getObject( position ); } @Override public int registerResultSetOutParameter(CallableStatement statement, String name) throws SQLException { statement.registerOutParameter( name, OracleTypesHelper.INSTANCE.getOracleCursorTypeSqlType() ); return 1; } @Override public ResultSet getResultSet(CallableStatement statement, String name) throws SQLException { return (ResultSet) statement.getObject( name ); } @Override public boolean supportsSkipLocked() { return true; } }