Class OracleDialect

java.lang.Object
nablarch.core.db.dialect.DefaultDialect
nablarch.core.db.dialect.OracleDialect
All Implemented Interfaces:
Dialect

@Published(tag="architect") public class OracleDialect extends DefaultDialect
Oracle用の方言を吸収するためのクラスです。
  • Constructor Details

    • OracleDialect

      public OracleDialect()
      コンストラクタ。
  • Method Details

    • isTransactionTimeoutError

      public boolean isTransactionTimeoutError(SQLException sqlException)
      SQL例外がトランザクションタイムアウトと判断すべき例外か否か。

      Oracleデータベースの場合、以下例外の場合タイムアウト対象の例外として扱う。

      • エラーコード:1013(クエリタイムアウト時に送出される例外)
      Specified by:
      isTransactionTimeoutError in interface Dialect
      Overrides:
      isTransactionTimeoutError in class DefaultDialect
      Parameters:
      sqlException - SQL例外
      Returns:
      falseを返す。
    • supportsOffset

      public boolean supportsOffset()
      SQL文でのオフセット指定が使用できるか否か

      Oracle11g以前のバージョンでは、offset構文をサポートしていないが、 rownum擬似列を用いてoffset-limit同等のことが実現できるため、 trueを返却する。

      Specified by:
      supportsOffset in interface Dialect
      Overrides:
      supportsOffset in class DefaultDialect
      Returns:
      falseを返す。
    • supportsSequence

      public boolean supportsSequence()
      シーケンスはサポートする。
      Specified by:
      supportsSequence in interface Dialect
      Overrides:
      supportsSequence in class DefaultDialect
      Returns:
      true固定
    • buildSequenceGeneratorSql

      public String buildSequenceGeneratorSql(String sequenceName)
      シーケンスオブジェクトの次の値を取得するSQL文を構築する。
      Specified by:
      buildSequenceGeneratorSql in interface Dialect
      Overrides:
      buildSequenceGeneratorSql in class DefaultDialect
      Parameters:
      sequenceName - シーケンス名
      Returns:
      シーケンスオブジェクトの次の値を取得するSQL文
    • getResultSetConvertor

      public ResultSetConvertor getResultSetConvertor()
      Description copied from class: DefaultDialect
      ResultSetから値を取得するための変換クラスを返却する。

      全てのカラムをResultSet.getObject(int)で取得するコンバータを返す。

      Specified by:
      getResultSetConvertor in interface Dialect
      Overrides:
      getResultSetConvertor in class DefaultDialect
      Returns:
      変換クラス。
    • isDuplicateException

      public boolean isDuplicateException(SQLException sqlException)
      SQL例外が一意制約違反による例外かどうか判定する。

      SQL例外が一意制約違反による例外の場合true

      Specified by:
      isDuplicateException in interface Dialect
      Overrides:
      isDuplicateException in class DefaultDialect
      Parameters:
      sqlException - SQL例外
      Returns:
      errorCode が 1の場合true.
    • convertPaginationSql

      public String convertPaginationSql(String sql, SelectOption selectOption)
      SQL文を変換せずに返す。

      ページングの条件を元に、取得レコードをフィルタリングするSQLに変換する。

      Oracleでは、offsetやlimitはサポートされていないため(Oracle12c以降ではサポートはされている)、 rownum擬似列を使用して取得レコード数のフィルタリングを行うSQL文に変換を行う。

      Specified by:
      convertPaginationSql in interface Dialect
      Overrides:
      convertPaginationSql in class DefaultDialect
      Parameters:
      sql - SQL文
      selectOption - 検索時のオプション
      Returns:
      変換したSQL文
    • getPingSql

      public String getPingSql()
      Description copied from class: DefaultDialect
      ping用のSQL文を返す。

      データベースへの死活チェックを行うための、ping用SQL文を生成する。 デフォルト実装では、本メソッドはサポートしない。

      Specified by:
      getPingSql in interface Dialect
      Overrides:
      getPingSql in class DefaultDialect
      Returns:
      ping用のSQL文