JDBC APIの互換性

JDBC APIに適用される互換性の問題があります。

JDBCに適用される互換性の問題は次のとおりです。

  • JDBCデータベース・メタデータ関数はTimesTenメタデータを返します。Oracleメタデータが必要な場合は、Oracle Databaseに直接接続します。

  • 接続属性および文属性のset/getはTimesTen上で実行されます。

  • Oracle java.sql.ResultSetメタデータ(長さ、型、ラベル)はすべて、TimesTenデータ型の長さで返されます。返される列ラベルはTimesTenの列ラベルです。

  • Oracle拡張機能(oracle.sqlおよびoracle.jdbcパッケージ)はサポートされていません。

  • Javaストアド・プロシージャはTimesTenではサポートされていません。

java.sql.Connection

次のConnectionメソッドに互換性の問題はありません。

close()
commit()
createStatement()
prepareCall()
prepareStatement()
rollback()
setAutoCommit()

次のメソッドは、TimesTenでローカルに実行されます。

getCatalog()
getMetaData
get/setTransactionIsolation()
isReadOnly()
isClosed()
nativeSQL()
setCatalog()
setReadOnly()

ノート:

get/setTransactionIsolation()メソッドの制限については、「トランザクション・セマンティクス」を参照してください。

isClosed()メソッドはTimesTen接続ステータスのみを返します。

java.sql.Statement

次のStatementメソッドに互換性の問題はありません。

addBatch()
clearBatch()
close()
execute()
executeBatch()
executeQuery()
executeUpdate()
getResultSet()
getUpdateCount()
getWarnings()

次のメソッドは、TimesTenでローカルに実行されます。

cancel()
get/setMaxFieldSize()
get/setMaxRows()
get/setQueryTimeout()
getMoreResults()
setEscapeProcessing()
setCursorName()

java.sql.ResultSet

次のResultSetメソッドに互換性の問題はありません。

close()
findColumn(int) and findColumn(string)
getXXX(number) and getXXX(name)
getXXXStream(int) and getXXXStream(string)
getMetaData()

java.sql.PreparedStatement

次のPreparedStatementメソッドに互換性の問題はありません。

addBatch()
close()
execute()
executeUpdate()
executeQuery()
getResultSet()
getUpdateCount()
setXXX()
setXXXStream()

次のメソッドは、TimesTenでローカルに実行されます。

cancel()
get/setMaxFieldSize()
get/setMaxRows()
get/setQueryTimeout()
getMoreResults()
setEscapeProccessing()
setCursorName()

java.sql.CallableStatement

java.sql.Statementおよびjava.sql.PreparedStatementインタフェースの場合と同じ制限が、CallableStatementに適用されます。

  • WRITETHROUGHキャッシュ・グループでは、PassThrough=1の場合、ストアド・プロシージャで非表示になっているかトリガーによって発生した間接DML操作が、Oracleへのキャッシュ接続によって検出されずに渡される可能性があります。

  • READONLYキャッシュ・グループ表から更新、挿入または削除するストアド・プロシージャは、別のトランザクションで非同期的に自動リフレッシュされます。したがって、ストアド・プロシージャが処理されていた同じトランザクション内に変更は表示されず、変更がキャッシュ表に自動リフレッシュされる前に時間がかかる場合があります。

java.sql.ResultSetMetaData

次のResultSetMetaDataメソッドに互換性の問題はありません。

getColumnCount()
getColumnType()
getColumnLabel()
getColumnName()
getTableName()
isNullable()

次のメソッドは、TimesTenでローカルに実行されます。

getSchemaName()
getCatalogName()
getColumnDisplaySize()
getColumnType()
getColumnTypeName()
getPrecision()
getScale()
isAutoIncrement()
isCaseSensitive()
isCurrency()
isDefinitelyWritable()
isReadOnly()
isSearchable()
isSigned()
isWritable()

ストリームのサポート

ストリームに関連する互換性の問題があります。

ストリームに関連する互換性の問題は次のとおりです。

  • JDBCドライバは、executeQuery()またはnext()メソッドの呼出し時に、データをインメモリー・バッファに完全にフェッチします。getXXXStream()エントリ・ポイントは、このバッファからデータを読み取るストリームを返します。

  • Oracleでは、最大2GBのlongまたはlong RAWデータがサポートされます。キャッシュされると、TimesTenはLONGデータをVARCHAR2データに変換します。TimesTenはLONG RAWデータをVARBINARYデータに変換します。VARCHAR2およびVARBINARYデータ型はいずれも、最大4,194,304 (222)バイトまで格納できます。

  • アプリケーションがgetXXXStream()を呼び出さない場合でも、常にLONG/LONG RAWデータがストリームされます。

  • TimesTenではmark()markSupported()およびreset()の各メソッドはサポートされません。