Package nablarch.core.db.dialect
Class OracleDialect
java.lang.Object
nablarch.core.db.dialect.DefaultDialect
nablarch.core.db.dialect.OracleDialect
- All Implemented Interfaces:
Dialect
Oracle用の方言を吸収するためのクラスです。
- Author:
- hisaaki sioiri
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuildSequenceGeneratorSql
(String sequenceName) シーケンスオブジェクトの次の値を取得するSQL文を構築する。convertPaginationSql
(String sql, SelectOption selectOption) SQL文を変換せずに返す。ping用のSQL文を返す。全てのカラムをResultSet.getObject(int)
で取得するコンバータを返す。boolean
isDuplicateException
(SQLException sqlException) SQL例外が一意制約違反による例外かどうか判定する。boolean
isTransactionTimeoutError
(SQLException sqlException) SQL例外がトランザクションタイムアウトと判断すべき例外か否か。boolean
SQL文でのオフセット指定が使用できるか否かboolean
シーケンスはサポートする。Methods inherited from class nablarch.core.db.dialect.DefaultDialect
convertCountSql, supportsIdentity, supportsIdentityWithBatchInsert
-
Constructor Details
-
OracleDialect
public OracleDialect()コンストラクタ。
-
-
Method Details
-
isTransactionTimeoutError
SQL例外がトランザクションタイムアウトと判断すべき例外か否か。 Oracleデータベースの場合、以下例外の場合タイムアウト対象の例外として扱う。- エラーコード:1013(クエリタイムアウト時に送出される例外)
- Specified by:
isTransactionTimeoutError
in interfaceDialect
- Overrides:
isTransactionTimeoutError
in classDefaultDialect
- Parameters:
sqlException
- SQL例外- Returns:
false
を返す。
-
supportsOffset
public boolean supportsOffset()SQL文でのオフセット指定が使用できるか否か Oracle11g以前のバージョンでは、offset構文をサポートしていないが、 rownum擬似列を用いてoffset-limit同等のことが実現できるため、true
を返却する。- Specified by:
supportsOffset
in interfaceDialect
- Overrides:
supportsOffset
in classDefaultDialect
- Returns:
false
を返す。
-
supportsSequence
public boolean supportsSequence()シーケンスはサポートする。- Specified by:
supportsSequence
in interfaceDialect
- Overrides:
supportsSequence
in classDefaultDialect
- Returns:
- true固定
-
buildSequenceGeneratorSql
シーケンスオブジェクトの次の値を取得するSQL文を構築する。- Specified by:
buildSequenceGeneratorSql
in interfaceDialect
- Overrides:
buildSequenceGeneratorSql
in classDefaultDialect
- Parameters:
sequenceName
- シーケンス名- Returns:
- シーケンスオブジェクトの次の値を取得するSQL文
-
getResultSetConvertor
Description copied from class:DefaultDialect
全てのカラムをResultSet.getObject(int)
で取得するコンバータを返す。- Specified by:
getResultSetConvertor
in interfaceDialect
- Overrides:
getResultSetConvertor
in classDefaultDialect
- Returns:
- 変換クラス。
-
isDuplicateException
SQL例外が一意制約違反による例外かどうか判定する。 SQL例外が一意制約違反による例外の場合true
- Specified by:
isDuplicateException
in interfaceDialect
- Overrides:
isDuplicateException
in classDefaultDialect
- Parameters:
sqlException
- SQL例外- Returns:
- errorCode が 1の場合true.
-
convertPaginationSql
SQL文を変換せずに返す。 ページングの条件を元に、取得レコードをフィルタリングするSQLに変換する。 Oracleでは、offsetやlimitはサポートされていないため(Oracle12c以降ではサポートはされている)、 rownum擬似列を使用して取得レコード数のフィルタリングを行うSQL文に変換を行う。- Specified by:
convertPaginationSql
in interfaceDialect
- Overrides:
convertPaginationSql
in classDefaultDialect
- Parameters:
sql
- SQL文selectOption
- 検索時のオプション- Returns:
- 変換したSQL文
-
getPingSql
Description copied from class:DefaultDialect
ping用のSQL文を返す。 データベースへの死活チェックを行うための、ping用SQL文を生成する。 デフォルト実装では、本メソッドはサポートしない。- Specified by:
getPingSql
in interfaceDialect
- Overrides:
getPingSql
in classDefaultDialect
- Returns:
- ping用のSQL文
-