Oracle に関するその他の考慮事項

OpenESQL for ODBC または他のデータベース システムから移行するアプリケーションでは、次の事項を考慮する必要があります。

位置指定 UPDATE および HOLD カーソル

OpenESQL for OCI は Oracle ROWID を使用して、位置指定 UPDATE および位置指定 DELETE を検索 UPDATE に変換します。FOR UPDATE カーソルを開くと、Oracle は最初の COMMIT まで行をロックします。OpenESQL はその後も位置指定 UPDATE を実行しますが、最初の COMMIT 後にフェッチされた行はロックされません。

スクロール可能なカーソル

OCI では、スクロール可能なカーソルは常に読み取り専用です。OCI 以外では、OCI のスクロール可能なカーソルは ODBC キーセット カーソルと同様に動作します。OpenESQL for OCI は、すべての非順方向専用カーソルを OCI の読み取り専用のスクロール可能なカーソルに変換します。

分離レベル

Oracle OCI は、スナップショット/読み取り一貫性に基づいて、読み取りアンコミット分離をサポートせずデフォルトで読み取りコミット済みの設定になります。ただし Oracle は行のバージョン管理を使用するため、通常、読み取りはブロックしません。Oracle OCI は反復可能読み取り分離もサポートしないため、OpenESQL for OCI は反復可能読み取り分離をシリアル化可能に変換します。

EXEC SQL CONNECT 文の処理

  • CONNECT WITH PROMPT はサポートされません。
  • Type 6 の接続 (ユーザー指定の接続文字列) はサポートされません。
  • 出力接続文字列はサポートされません。

動的 SQL

動的 SQL DESCRIBE では、OCI は NUMBER 列の異なるデータ型をスケール 0 で戻す場合があります。一部の ODBC ドライバーはこれらのデータ型を DECIMAL または NUMERIC として記述します。OCI はこれらを tinyint (スケール 2 以下)、smallint (スケール 4 以下)、int (スケール 9 以下)、bigint (スケール 18 以下) または decimal (スケール 18 超) として記述します。