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
から値を取得するための変換クラスを返却する。boolean
isDuplicateException
(SQLException sqlException) SQL例外が一意制約違反による例外かどうか判定する。boolean
isTransactionTimeoutError
(SQLException sqlException) SQL例外がトランザクションタイムアウトと判断すべき例外か否か。boolean
SQL文でのオフセット指定が使用できるか否かboolean
シーケンスはサポートする。Methods inherited from class nablarch.core.db.dialect.DefaultDialect
convertCountSql, 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
から値を取得するための変換クラスを返却する。全てのカラムを
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文
-