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()
の各メソッドはサポートされません。