ヘッダーをスキップ
Oracle Database JDBC開発者ガイド
11
g
リリース2(11.2)
B56281-01
索引
次
目次
例一覧
図一覧
表一覧
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
新機能
リリース2(11.2)の新機能
第I部 概要
1
JDBCの概要
Oracle JDBCドライバの概要
Oracle JDBCドライバの共通機能
適切なドライバの選択
JDBC OCIドライバとJDBC Thinドライバの機能の相違点
環境およびサポート
サポートされるJDKおよびJDBCのバージョン
JNI環境およびJava環境
JDBCとIDE
機能リスト
2
スタート・ガイド
Oracle JDBCドライバのバージョン互換性
JDBCクライアント・インストールの検証
インストールされたディレクトリとファイルの確認
環境変数の確認
Javaコードのコンパイルと実行の確認
JDBCドライバのバージョンの確認
JDBCおよびデータベース接続のテスト
JDBCでの基本的な処理
パッケージのインポート
データベースへの接続のオープン
Statementオブジェクトの作成
問合せの実行と結果セット・オブジェクトの取出し
結果セット・オブジェクトの処理
結果セット・オブジェクトとStatementオブジェクトのクローズ
データベースの変更
変更のコミット
コミット動作の変更
接続のクローズ
サンプル: 接続、問合せおよび結果処理
JDBCプログラムでのストアド・プロシージャ・コール
PL/SQLストアド・プロシージャ
Javaストアド・プロシージャ
SQL例外の処理
第II部 Oracle JDBC
3
JDBC標準のサポート
JDBC 2.0標準のサポート
データ型のサポート
標準機能のサポート
拡張機能のサポート
JDBC2.0 Standard Extension APIとオラクル社独自のパフォーマンス強化API
JDBC 3.0標準のサポート
トランザクション・セーブポイント
セーブポイントの作成
セーブポイントまでのロールバック
セーブポイントの解放
セーブポイント・サポートのチェック
セーブポイントに関する注意事項
自動生成キーの取出し
java.sql.Statement
サンプル・コード
制限事項
JDBC 3.0のLOBインタフェース・メソッド
結果セットの保持機能
JDBC 4.0標準のサポート
ラッパー・パターンのサポート
SQLXML型
機能拡張された例外階層とSQLException
ROWIDデータ型
LOBの作成
各国語キャラクタ・セットのサポート
4
Oracle拡張機能
Oracle拡張機能の概要
Oracle拡張機能
JDBCを使用したデータベース管理
Oracleデータ型のサポート
Oracleオブジェクトのサポート
スキーマの命名サポート
DML RETURNING
PL/SQL索引付き表へのアクセス
Oracle JDBCパッケージ
パッケージoracle.sql
パッケージoracle.jdbc
Oracle文字データ型のサポート
SQL CHARデータ型
SQL NCHARデータ型
クラスoracle.sql.CHAR
その他のOracle型拡張機能
Oracle ROWID型
Oracle REF CURSOR型カテゴリ
Oracle BINARY_FLOAT型およびBINARY_DOUBLE型
Oracle SYS.ANYTYPE型およびSYS.ANYDATA型
oracle.jdbcパッケージ
インタフェースoracle.jdbc.OracleConnection
インタフェースoracle.jdbc.OracleStatement
インタフェースoracle.jdbc.OraclePreparedStatement
インタフェースoracle.jdbc.OracleCallableStatement
インタフェースoracle.jdbc.OracleResultSet
インタフェースoracle.jdbc.OracleResultSetMetaData
クラスoracle.jdbc.OracleTypes
メソッドgetJavaSqlConnection
DML RETURNING
Oracle固有のAPI
DML RETURNING文の実行
DML RETURNINGの例
DML RETURNINGの制限事項
PL/SQL索引付き表へのアクセス
概要
INパラメータのバインド
OUTパラメータの受取り
型マッピング
5
JDBC Thin固有の機能
JDBC Thinクライアントの概要
サポートする追加機能
アプレットのサポート
ネイティブXAのデフォルトでのサポート
アプレット内のJDBC
アプレットを介したデータベースへの接続
Webサーバーとは異なるホスト上のデータベースへの接続
Oracle Connection Managerの使用
署名付きアプレットの使用
ファイアウォールとアプレットの使用方法
JDBC Thinドライバを使用するアプレット用のファイアウォールの構成
ファイアウォールを通過する接続のためのURLの記述
アプレットのパッケージ化
HTMLページでのアプレットの指定
CODE、HEIGHTおよびWIDTH
CODEBASE
ARCHIVE
6
JDBC OCIドライバ固有の機能
OCI接続プーリング
クライアント結果キャッシュ
クライアント結果キャッシュの利点
JDBCでの使用ガイドライン
RESULT_CACHE_MODEパラメータ
表注釈
SQLヒント
透過的アプリケーション・フェイルオーバー
OCIネイティブXA
OCI Instant Client
Instant Clientの概要
Instant Clientの利点
JDBC OCI Instant Clientのインストール手順
Instant Clientの使用
Instant Client共有ライブラリのパッチ
データ共有ライブラリとZIPファイルの再生成
OCI Instant Client用のデータベース接続名
OCI Instant Clientの環境変数
Instant Client Light(English)
グローバリゼーション設定
動作
インストール
7
サーバー側内部ドライバ
サーバー側内部ドライバの概要
データベースへの接続
セッション・コンテキストおよびトランザクション・コンテキスト
サーバー上でのJDBCのテスト
サーバーへのアプリケーションのロード
loadjavaユーティリティの使用
JVMコマンドラインの使用
第III部 接続とセキュリティ
8
データソースおよびURL
データソース
JNDIのOracleデータソース・サポートの概要
データソースの機能とプロパティ
データソース・インスタンスの作成と接続
データソース・インスタンスの作成、JNDIへの登録および接続
サポートされている接続プロパティ
SYSログインのためのロールの使用方法
データベース・リモート・ログインの構成
Bequeathed接続とSYSログオン
Oracleパフォーマンス拡張要素のプロパティ
データベースURLとデータベース指定子
9
JDBCクライアント側セキュリティ機能
Oracle Advanced Securityのサポート
ログイン認証のサポート
厳密認証のサポート
OS認証のサポート
Linuxの構成手順
Windowsの構成手順
OS認証を使用するJDBCコード
データ暗号化と整合性のサポート
JDBC OCIドライバによるデータ暗号化と整合性のサポート
JDBC Thinドライバによるデータ暗号化と整合性のサポート
Javaでの暗号化および整合性パラメータの設定
SSLのサポート
証明書とウォレットの管理
鍵と証明書のコンテナ
Kerberosのサポート
Kerberosを使用するためのWindowsの構成
Kerberosを使用するためのOracle Databaseの構成
サンプル・コード
RADIUSのサポート
RADIUSを使用するためのOracle Databaseの構成
サンプル・コード
セキュアな外部パスワード記憶域
10
プロキシ認証
プロキシ認証について
各種のプロキシ接続
プロキシ接続の作成
プロキシ・セッションのクローズ
プロキシ接続のキャッシュ
プロキシ接続の制限
第IV部 データへのアクセスと操作
11
Oracleデータへのアクセスと操作
データ型マッピング
マッピングの表
マッピングに関する注意
データ変換での考慮事項
標準型とOracle型
SQL NULLデータの変換
NULLのテスト
結果セットと文拡張機能
Oracleのgetおよびsetメソッドと標準JDBCの比較
標準getObjectメソッド
Oracle getOracleObjectメソッド
getObjectおよびgetOracleObject戻り型のまとめ
その他のgetXXXメソッド
getXXXメソッドの戻り型
getXXXメソッドに関する特別な注意
getObjectおよびgetXXXから戻されるオブジェクトのデータ型
setObjectメソッドとsetOracleObjectメソッド
その他のsetXXXメソッド
入力データのバインド
WHERE句にCHARデータをバインドするためのメソッドsetFixedCHAR
結果セット・メタデータ拡張機能の使用方法
SQL CALL文とCALL INTO文の使用
12
JDBC内のJavaストリーム
Javaストリームの概要
LONGまたはLONG RAW列のストリーム
LONG RAWデータの変換
LONGデータの変換
LONG RAWデータのストリーム例
LONGまたはLONG RAWのストリーム回避
CHAR、VARCHARまたはRAW列のストリーム
LOBおよび外部ファイルのストリーム
データ・ストリームと複数列
ストリームのクローズ
ストリームに関する注意
ストリーム・データを使用する際の注意
setBytesとsetStringの制限を回避するためのストリームの使用方法
ストリームと行のプリフェッチ
13
Oracleオブジェクト型の操作
Oracleオブジェクトのマッピング
Oracleオブジェクト用のデフォルトSTRUCTクラスの使用方法
STRUCTクラス機能
STRUCTオブジェクトと属性の取出し
STRUCTオブジェクトの作成
STRUCTオブジェクトの文へのバインド
STRUCT自動属性バッファリング
Oracleオブジェクト用のカスタム・オブジェクト・クラスの作成と使用方法
ORADataとSQLDataの利点
SQLDataを実装するための型マップ
型マップの作成とSQLData実装のマッピング定義
既存の型マップへのエントリの追加
新しい型マップの作成
型マップで指定されていないオブジェクト型のインスタンス化
SQLData実装によるデータの読取りおよび書込み
ORADataインタフェース
ORAData実装によるデータの読取りおよび書込み
その他のORADataの使用方法
オブジェクト型の継承
サブタイプの作成
サブタイプに対してカスタマイズされたクラスの実装
ORADataを使用した型継承階層の作成
SQLDataを使用した型継承階層の作成
JPublisherユーティリティ
サブタイプ・オブジェクトの取得
サブタイプ・オブジェクトの作成
サブタイプ・オブジェクトの送信
サブタイプ・データ・フィールドへのアクセス
継承メタデータ・メソッド
JPublisherを使用したカスタム・オブジェクト・クラスの作成
JPublisherの機能
JPublisher型マッピング
オブジェクト型の記述
オブジェクト・メタデータの取出し機能
オブジェクト・メタデータを取り出す手順
14
LOBとBFILEの操作
LOBデータ型
Oracle SecureFile
LOBのデータ・インタフェース
効率的なメカニズム
入力
出力
CallableSatementとIN OUTパラメータ
サイズの制限
LOBロケータ・インタフェース
一時LOBの使用
OpenおよびCloseメソッドによる通常のLOBのオープン
BFILEの操作
15
Oracleオブジェクト参照の使用
オブジェクト参照用Oracle拡張機能
オブジェクト参照の取出しと引渡し
結果セットからのオブジェクト参照の取出し
オブジェクト参照のコール可能文からの取出し
オブジェクト参照のプリコンパイルされたSQL文への引渡し
オブジェクト値に対する、オブジェクト参照を介したアクセスと更新
JPublisherで生成するカスタム参照クラス
16
Oracleコレクションの操作
コレクションのためのOracle拡張機能
コレクションのインスタンス化に関する選択
コレクションの作成
マルチ・レベルのコレクション型の作成
コレクション機能の概要
ARRAYパフォーマンス拡張要素メソッド
Javaプリミティブ型の配列としてのoracle.sql.ARRAY要素へのアクセス
ARRAY自動要素バッファリング
ARRAY自動索引作成
配列の作成と使用方法
ARRAYオブジェクトの作成
配列とその要素の取出し
配列の取出し
データ取出しメソッド
データ取出しメソッドの比較
型マップに従った構造化オブジェクト配列の要素の取出し
配列要素のサブセットの取出し
oracle.sql.Datum配列への配列要素の取出し
マルチ・レベル・コレクション要素へのアクセス
配列の文オブジェクトへの引渡し
型マップを使用した配列要素のマップ
JPublisherで生成するカスタム・コレクション・クラス
17
結果セット
結果セットのサポートのOracle JDBC実装概要
結果セットの制限事項およびダウングレード・ルール
更新の競合回避
フェッチ・サイズ
フェッチ・サイズの設定
フェッチ方向のプリセット
行の再フェッチ
内部的および外部的に加えられたデータベース変更の参照
外部変更の可視性と検出
内部変更および外部変更の可視性の概要
Scroll-Sensitive結果セットのOracle実装
18
JDBC RowSet
JDBC RowSetの概要
RowSetのプロパティ
イベントおよびイベント・リスナー
コマンド・パラメータおよびコマンド実行
RowSetの横断
CachedRowSet
JdbcRowSet
WebRowSet
FilteredRowSet
JoinRowSet
19
グローバリゼーション・サポート
グローバリゼーション・サポートの提供
JDK 1.5のNCHAR、NVARCHAR2、NCLOBおよびdefaultNCharプロパティ
JDK 1.6での各国語キャラクタ・セット用の新しいメソッド
第V部 パフォーマンスとスケーラビリティ
20
文キャッシュと結果セット・キャッシュ
文キャッシュについて
文キャッシュの基本
暗黙的文キャッシュ
明示的文キャッシュ
文キャッシュの使用方法
文キャッシュの有効化および無効化
キャッシュされた文のクローズ
暗黙的文キャッシュの使用方法
明示的文キャッシュの使用方法
文オブジェクトの再利用
プールされた文の使用
プールされた文のクローズ
結果セット・キャッシュ
サーバー側キャッシュ
クライアント結果キャッシュ
21
暗黙的接続キャッシュ
暗黙的接続キャッシュ
接続キャッシュの使用
キャッシュの有効化
接続のオープン
接続キャッシュ名の設定
接続キャッシュ・プロパティの設定
接続のクローズ
暗黙的接続キャッシュの例
接続属性
接続の取得
接続属性の設定
戻された接続の属性の確認
接続属性の例
接続キャッシュ・プロパティ
制限プロパティ
タイムアウト・プロパティ
その他のプロパティ
接続プロパティの例
Connection Cache Manager API
高度なトピック
属性の重みと接続の一致
接続キャッシュのコールバック
TimeToLiveTimeoutおよびAbandonedConnectionTimeoutのユースケース
22
実行時接続ロード・バランシング
実行時接続ロード・バランシングの概要
実行時接続ロード・バランシングの有効化
23
パフォーマンス拡張機能
バッチ更新
バッチ更新モデルの概要
Oracleバッチ更新
Oracleバッチ更新の特性と制限事項
接続バッチ値の設定
文バッチ値の設定
バッチ値のチェック
バッチ値のオーバーライド
Oracleバッチ処理での変更のコミット
Oracleバッチ処理による更新件数
Oracleバッチ更新におけるエラー・レポート
標準バッチ更新
標準バッチ処理のOracle実装の制限事項
バッチに対する操作の追加
バッチの処理
標準バッチ処理のOracle実装による変更のコミット
バッチのクリア
標準バッチ処理のOracle実装の更新件数
標準バッチ処理のOracle実装におけるエラー処理
バッチ処理される文とバッチ処理されない文の混在
早期バッチ・フラッシュ
その他のOracleパフォーマンス拡張機能
LOBデータのプリフェッチ
Oracle行プリフェッチの制限事項
列型の定義
DatabaseMetaData TABLE_REMARKSのレポート
24
OCI接続プーリング
OCIドライバ接続プーリング: 背景
OCIドライバ接続プーリングと共有サーバーの比較
OCI接続プールの定義
OCI接続プールへの接続
OCI接続プーリングのサンプル・コード
文の処理とキャッシュ
JNDIおよびOCI接続プール
25
Oracleアドバンスト・キューイング(AQ)
Oracleアドバンスト・キューイングの機能とフレームワーク
データベースの変更
AQ非同期イベント通知
メッセージの作成
例: メッセージの作成およびペイロードの設定
メッセージのエンキュー
メッセージのデキュー
例: エンキューとデキュー
26
データベース変更通知
登録エントリの作成
登録エントリへの問合せの関連付け
データベース変更イベントの通知
登録の削除
第VI部 高可用性
27
高速接続フェイルオーバー
高速接続フェイルオーバーの概要
高速接続フェイルオーバーの使用
高速接続フェイルオーバーの前提条件
高速接続フェイルオーバー用のONSの構成
リモートONSサブスクリプション
高速接続フェイルオーバーを使用可能にする
高速接続フェイルオーバーのステータスの問合せ
高速接続フェイルオーバーについて
アプリケーションによる認識
実行される処理
高速接続フェイルオーバーとTAFの比較
28
透過的アプリケーション・フェイルオーバー
透過的アプリケーション・フェイルオーバーの概要
フェイルオーバー・タイプ・イベント
TAFコールバック
Java TAFコールバック・インタフェース
第VII部 トランザクション管理
29
分散トランザクション
分散トランザクションの概要
分散トランザクションのコンポーネントおよびシナリオ
分散トランザクションの概念
ローカル・トランザクションとグローバル・トランザクションの切替え
Oracle XAパッケージ
XAコンポーネント
XADatasourceインタフェースとOracle実装
XAConnectionインタフェースとOracle実装
XAResourceインタフェースとOracle実装
OracleXAResourceメソッドの機能と入力パラメータ
XidインタフェースとOracle実装
エラー処理と最適化
XAExceptionクラスとメソッド
OracleエラーとXAエラーのマッピング
XAエラー処理
Oracle XA最適化
分散トランザクションの実装
Oracle XAのインポートの概要
OracleのXAコード・サンプル
Oracle JDBCドライバのネイティブXA
OCIネイティブXA
ThinネイティブXA
第VIII部 管理性
30
データベース管理
31
JDBCの診断機能
ロギング
JDBCロギングの有効化と使用
CLASSPATHの構成
ロギングの有効化
ロギングの構成
ログ出力の使用
例
パフォーマンス、スケーラビリティおよびセキュリティに関する問題点
診断能力管理
32
JDBC DMSメトリック
JDBC DMSメトリックの概要
生成されるメトリックの種類の決定
SQLTextメトリックの生成
JMXを使用したDMSメトリックへのアクセス
第IX部 付録
A
JDBCリファレンス情報
有効なSQL-JDBCデータ型マッピング
サポートされているSQLおよびPL/SQLデータ型
埋込みJDBCエスケープ構文
時刻および日付リテラル
日付リテラル
時刻リテラル
タイムスタンプ・リテラル
スカラー関数
LIKEエスケープ文字
外部結合
ファンクション・コール構文
JDBCエスケープ構文からOracle SQL構文変換例
Oracle JDBCの注意および制限事項
CursorName
JDBC外部結合エスケープ
PL/SQL TABLE、BOOLEANおよびRECORD型
IEEE 754浮動小数点との互換性
DatabaseMetaDataコールへのCatalog引数
SQLWarningクラス
DDL文の実行
名前付きパラメータのバインド
B
Oracle RAC高速アプリケーション通知
Oracle RAC高速アプリケーション通知の概要
Oracle RAC高速アプリケーション通知のインストールおよび構成
ONSの構成
ONS構成ファイルの概要
クライアント側ONSの構成
Oracle RAC高速アプリケーション通知の使用
接続キャッシュの実装
C
コーディングのヒント
JDBCとマルチスレッド
パフォーマンスの最適化
自動コミット・モードの無効化
標準フェッチ・サイズとOracle行プリフェッチ
標準バッチ更新とOracleバッチ更新
文キャッシュ
組込みSQL型とJava型間のマッピング
トランザクション分離レベルとアクセス・モード
D
JDBCエラー・メッセージ
JDBCエラー・メッセージの一般構造
一般JDBCメッセージ
ORA番号でソートしたJDBCメッセージ
五十音順にソートしたJDBCメッセージ
ネイティブXAメッセージ
ORA番号でソートしたネイティブXAメッセージ
五十音順にソートしたネイティブXAメッセージ
TTCメッセージ
ORA番号でソートしたTTCメッセージ
五十音順にソートしたTTCメッセージ
E
トラブルシューティング
一般的な問題
OUTまたはIN/OUT変数として定義されたCHAR列に対するメモリー消費
メモリー・リークおよびカーソルの不足
PL/SQLストアド・プロシージャのブール型パラメータ
1プロセスで可能なOCI接続のオープン数について
Statement.cancelの使用
ファイアウォールとJDBCの使用方法
多数回にわたるサーバーからの突然の切断
基本的なデバッグ処理
ネットワーク・イベントをトラップするためのOracle Netトレース
クライアント側でのトレース
サーバー側のトレース
サード・パーティのデバッグ・ツール
索引