プライマリ・コンテンツに移動
Oracle® Database開発ガイド
12
c
リリース1 (12.1)
B71295-06
ライブラリ
製品
索引
次
目次
例一覧
図一覧
表一覧
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
『Oracle Database開発ガイド』のこのリリースでの変更点
Oracle Database 12
c
リリース1 (12.1.0.2)での変更点
Oracle Database 12
c
リリース1 (12.1.0.1)での変更点
第I部 データベース開発の基礎
1
設計の基本
1.1
パフォーマンスを考慮した設計
1.2
スケーラビリティを考慮した設計
1.3
拡張性を考慮した設計
1.3.1
データ・カートリッジ
1.3.2
外部プロシージャ
1.3.3
ユーザー定義ファンクションと集計ファンクション
1.3.4
オブジェクト・リレーショナル機能
1.4
セキュリティを考慮した設計
1.5
可用性を考慮した設計
1.6
移植性を考慮した設計
1.7
診断性を考慮した設計
1.8
特殊な環境を考慮した設計
1.8.1
データ・ウェアハウス
1.8.2
オンライン・トランザクション処理(OLTP)
1.9
特殊なシナリオのための機能
1.9.1
SQL分析ファンクション
1.9.2
マテリアライズド・ビュー
1.9.3
パーティショニング
1.9.4
時間的な有効性のサポート
2
パフォーマンスとスケーラビリティ
2.1
パフォーマンス戦略
2.1.1
実行するデータ・モデルの効率的な設計
2.1.1.1
アプリケーションのデータ要件の分析
2.1.1.2
アプリケーションのデータベース設計の作成
2.1.1.3
データベース・アプリケーションの実装
2.1.1.4
データベースとデータベース・アプリケーションのメンテナンス
2.1.2
パフォーマンス目標(メトリック)の設定
2.1.3
アプリケーションのベンチマーク
2.2
パフォーマンスのためのツール
2.2.1
DBMS_APPLICATION_INFOパッケージ
2.2.2
SQLトレース機能(SQL_TRACE)
2.2.3
EXPLAIN PLAN文
2.3
データベース・パフォーマンスの監視
2.3.1
自動データベース診断モニター(ADDM)
2.3.2
リアルタイムなデータベースのパフォーマンスの監視
2.3.3
パフォーマンス関連のアラートに対する対応
2.3.4
SQLアドバイザとメモリー・アドバイザ
2.4
インスツルメンテーションの使用
2.5
パフォーマンスのテスト
2.6
バインド変数の使用法
2.7
クライアント結果キャッシュの使用
2.7.1
クライアント結果キャッシュの使用の概要
2.7.2
クライアント結果キャッシュの利点
2.7.3
クライアント結果キャッシュを使用するガイドライン
2.7.3.1
SQLヒント
2.7.3.2
表注釈
2.7.3.3
セッション・パラメータ
2.7.3.4
有効な表結果キャッシュ・モード
2.7.3.5
有効な表結果キャッシュ・モードの表示
2.7.3.6
結果キャッシュ・モードの使用例
2.7.3.7
クライアント結果キャッシュで結果がキャッシュされない問合せ
2.7.4
クライアント結果キャッシュの一貫性
2.7.5
クライアント結果キャッシュに関するデプロイメント時設定
2.7.5.1
サーバー初期化パラメータ
2.7.5.2
クライアント構成パラメータ
2.7.6
クライアント結果キャッシュの統計
2.7.7
クライアント結果キャッシュの検証
2.7.7.1
実行時間の測定
2.7.7.2
V$MYSTATの問合せ
2.7.7.3
V$SQLAREAの問合せ
2.7.8
クライアント結果キャッシュとサーバー結果キャッシュ
2.7.9
クライアント結果キャッシュのデモ・ファイル
2.7.10
クライアント結果キャッシュの以前のリリースとの互換性
2.7.11
クライアント結果キャッシュに関する詳細情報の参照先
2.8
文キャッシュ
2.9
OCIクライアント文キャッシュの自動チューニング
2.10
クライアント側デプロイメント・パラメータ
2.11
問合せ変更通知の使用
2.12
データベース常駐接続プールの使用
2.12.1
データベース常駐接続プールの理解
2.12.2
DRCPの構成
2.12.3
DRCPでのJDBCの使用
2.12.4
DRCPでのOCIセッション・プールAPIの使用
2.12.5
セッション純正値および接続クラス
2.12.5.1
セッション純正値
2.12.5.2
接続クラス
2.12.5.3
セッション純正値および接続クラスのデフォルト
2.12.6
データベース常駐接続プールの開始
2.12.7
DRCPの有効化
2.12.8
OCIアプリケーションにおけるDRCPのスケーラビリティの利用
2.12.9
JavaアプリケーションにおけるDRCPのスケーラビリティの利用
2.12.10
DRCPの使用に関するベスト・プラクティス
2.12.11
互換性と移行
2.12.12
DRCPの制限事項
2.12.13
カスタム・プールでのDRCPの使用
2.12.14
明示的なステートフルまたはステートレス・セッションのマーキング
2.12.15
Oracle Real Application ClustersでのDRCPの使用方法
2.12.16
プラガブル・データベースでのDRCPの使用
2.12.17
DRCPとData Guard
2.13
ランタイム接続ロード・バランシングの使用方法
2.13.1
ランタイム接続ロード・バランシングの概要
2.13.2
ランタイム接続ロード・バランシングの有効化と無効化
2.13.2.1
OCI
2.13.2.2
OCCI
2.13.2.3
JDBC
2.13.2.4
ODP.NET
2.13.3
ロード・バランシング・アドバイザFANイベントの受信
3
セキュリティ
3.1
権限の付与、ロール、最小限の権限によるユーザー・アクセスの有効化
3.2
データベース・ログインの自動化
3.3
ファイングレイン・アクセス制御によるユーザー・アクセスの制御
3.4
プロシージャとファンクションに対する実行者の権限と定義者の権限の使用
3.4.1
実行者の権限と定義者の権限の概要
3.4.2
実行者の権限のプロシージャとファンクションを実行するユーザーの保護
3.4.3
Javaストアド・プロシージャでのデフォルト権限の処理方法
3.5
アプリケーションに対する外部プロシージャの管理
3.6
ユーザー・アクティビティの監査
4
高可用性
4.1
フェイルオーバーとクエリー・リプレイ
4.1.1
透過的アプリケーション・フェイルオーバー(TAF)
4.1.1.1
透過的アプリケーション・フェイルオーバーの理解
4.1.1.2
透過的アプリケーション・フェイルオーバーの構成
4.1.1.3
透過的アプリケーション・フェイルオーバー・コールバックの使用
4.1.2
アプリケーション・コンティニュイティ
4.2
高速アプリケーション通知(FAN)と高速接続フェイルオーバー(FCF)
4.2.1
高速アプリケーション通知(FAN)の概要
4.2.2
高速接続フェイルオーバー(FCF)の概要
4.3
アプリケーション・コンティニュイティとトランザクション・ガード
4.3.1
トランザクション・ガード
4.3.2
Java用のアプリケーション・コンティニュイティ
4.4
データベース・クラウドのサービスおよびロード管理
4.4.1
データベース・クラウドのサービスおよびロード管理の概要
5
高度なPL/SQL機能
5.1
PL/SQLのデータ型
5.2
動的SQL
5.3
PL/SQL最適化レベル
5.4
システム固有の実行のためのPL/SQLユニットのコンパイル
5.5
例外処理
5.6
条件付きコンパイル
5.7
バルク・バインド
第II部 アプリケーション開発者用のSQL
6
アプリケーション開発者用のSQL処理
6.1
SQL文の処理の説明
6.1.1
SQL文の処理のステージ
6.1.2
共有SQL領域
6.2
操作のトランザクションへのグループ化
6.2.1
トランザクションへの操作のグループ化方法の決定
6.2.2
トランザクションのパフォーマンスの改善
6.2.3
コミットREDO動作の管理
6.2.4
リカバリ可能な停止後のトランザクション結果の確認
6.2.4.1
トランザクション・ガードの理解
6.2.4.2
DBMS_APP_CONT.GET_LTXID_OUTCOMEの理解
6.2.4.3
トランザクション・ガードの使用
6.3
読取り専用トランザクションでの反復可能読取りの保証
6.4
明示的な表のロック
6.4.1
表のロックを取得するために必要な権限
6.4.2
ロック方法の選択
6.4.2.1
ROW SHARE MODEおよびROW EXCLUSIVE MODEでロックする場合
6.4.2.2
SHARE MODEでロックする場合
6.4.2.3
SHARE ROW EXCLUSIVE MODEでロックする場合
6.4.2.4
EXCLUSIVE MODEでロックする場合
6.4.3
Oracle Databaseによる表ロック制御
6.4.4
明示的な行ロック
6.4.5
明示的なロックにおける同時実行性の例
6.5
Oracle Lock Managementサービス(ユーザー・ロック)の使用
6.5.1
ユーザー・ロックを使用する場合
6.5.2
ロックの表示および監視
6.6
シリアライズ可能トランザクションを使用した同時実行性の制御
6.6.1
トランザクションの相互作用と分離レベル
6.6.2
分離レベルの設定
6.6.3
シリアライズ可能トランザクションおよび参照整合性
6.6.4
READ COMMITTEDおよびSERIALIZABLE分離レベル
6.6.4.1
トランザクション集合の整合性の違い
6.6.4.2
トランザクション分離レベルの選択
6.7
非ブロック化およびブロック化のDDL文
6.8
自律型トランザクション
6.8.1
自律型トランザクションの例
6.8.1.1
商品の注文
6.8.1.2
銀行口座からの出金処理
6.8.2
自律型ルーチンの宣言
6.9
記憶域割当てエラー後の実行の再開
6.9.1
再開可能記憶域割当てを含む操作
6.9.2
一時停止された記憶域割当ての処理
6.9.2.1
アプリケーションのAFTER SUSPENDトリガーの使用
6.9.2.2
一時停止された文の確認
7
データベース・アプリケーションにおけるSQLデータ型の使用
7.1
正確かつ最も固有のデータ型の使用
7.1.1
正しいデータ型によるデータ整合性の向上
7.1.2
最も固有のデータ型による記憶域要件の削減
7.1.3
正しいデータ型によるパフォーマンスの向上
7.2
文字データの表現
7.3
数値データの表現
7.3.1
浮動小数点数の構成要素
7.3.2
浮動小数点数形式
7.3.2.1
浮動小数点2進形式
7.3.3
ネイティブ浮動小数点データ型の特殊な数値の表現
7.3.4
ネイティブ浮動小数点値の比較
7.3.5
ネイティブ浮動小数点データ型を使用した算術演算
7.3.6
ネイティブ浮動小数点データ型の変換ファンクション
7.3.7
ネイティブ浮動小数点データ型のクライアント・インタフェース
7.4
日時データの表現
7.4.1
現在の日付および時刻の表示
7.4.2
日付の挿入および表示
7.4.3
時刻の挿入および表示
7.4.4
日時データ型を使用した算術演算
7.4.5
日時データ型の変換ファンクション
7.4.6
日時データ型のインポート、エクスポートおよび比較
7.5
特殊なデータの表現
7.5.1
空間データの表現
7.5.2
マルチメディア・データの表現
7.5.3
大量のデータの表現
7.5.3.1
ラージ・オブジェクト(LOB)
7.5.3.2
LONGおよびLONG RAWデータ型
7.5.4
検索可能なテキストの表現
7.5.5
XMLデータの表現
7.5.6
動的に型指定されたデータの表現
7.5.7
ANSI、DB2およびSQL/DSデータの表現
7.6
アドレスによる行の識別
7.7
SQL演算子とファンクションのメタデータの表示
7.7.1
ARGnデータ型
7.7.2
DISP_TYPEデータ型
7.7.3
SQLデータ型ファミリ
8
データベース・アプリケーションでの正規表現の使用
8.1
正規表現の概要
8.2
Oracle SQLの正規表現のサポート
8.3
Oracle SQLおよびPOSIX正規表現標準
8.4
Oracle SQL正規表現内の演算子
8.4.1
Oracle SQL正規表現内のPOSIX演算子
8.4.2
Oracle SQLのPOSIX標準に対する多言語拡張機能
8.4.3
Oracle SQLのPOSIX標準に対するPERLの影響を受ける拡張機能
8.5
SQL文での正規表現の使用: 例
8.5.1
制約を使用した電話番号書式の規定
8.5.2
後方参照を使用した文字の再配置
9
データベース・アプリケーションでの索引の使用
9.1
索引の管理のガイドライン
9.2
索引の管理
9.3
ドメイン索引を使用する場合
9.4
ファンクション索引を使用する場合
9.4.1
ファンクション索引のメリット
9.4.2
ファンクション索引のデメリット
9.4.3
ファンクション索引の例
10
データベース・アプリケーションにおけるデータ整合性のメンテナンス
10.1
制約を使用したビジネス・ルールの施行
10.2
制約とアプリケーション・コードの両方を使用したビジネス・ルールの施行
10.3
制約で使用する索引の作成
10.4
NOT NULL制約を使用する場合
10.5
デフォルトの列値を使用する場合
10.6
表の主キーの選択(主キー制約)
10.7
一意制約を使用する場合
10.8
外部キー制約を使用した参照整合性の施行
10.8.1
外部キー制約およびNULL値
10.8.2
親表と子表との関連の定義
10.8.3
複数の外部キー制約に関する規則
10.8.4
制約チェックの遅延
10.9
制約に対応付けられた索引の領域と時間のオーバーヘッドの最小化
10.10
外部キーを索引付けするためのガイドライン
10.11
分散データベース内の参照整合性
10.12
CHECK制約を使用する場合
10.12.1
CHECK制約の制限
10.12.2
CHECK制約の設計
10.12.3
複数のCHECK制約に関する規則
10.12.4
CHECKおよびNOT NULL制約の選択
10.13
制約の定義の例
10.13.1
制約の定義に必要な権限
10.13.2
制約のネーミング
10.14
制約の使用可能および使用禁止
10.14.1
制約を使用禁止にする理由
10.14.2
制約を使用可能にする(デフォルト)
10.14.3
制約を使用禁止にする
10.14.4
既存の制約を使用可能にする
10.14.5
既存の制約を使用禁止にする
10.14.6
キー制約の使用可能および使用禁止に関するガイドライン
10.14.7
制約の例外の修正
10.15
制約の変更
10.16
制約名の変更
10.17
制約の削除
10.18
外部キー制約の管理
10.18.1
外部キー列のデータ型および名前
10.18.2
複合外部キーにおける列の制限
10.18.3
デフォルトでの外部キーの主キー参照
10.18.4
外部キー制約の作成に必要な権限
10.18.5
外部キーによる参照整合性の施行方法の選択
10.19
制約に関する情報の表示
第III部 アプリケーション開発者用のPL/SQL
11
PL/SQLサブプログラムおよびパッケージのコード化
11.1
PL/SQLサブプログラムの概要
11.2
PL/SQLパッケージの概要
11.3
PL/SQLユニットの概要
11.3.1
PLSQL_OPTIMIZE_LEVELコンパイル・パラメータ
11.4
PL/SQLサブプログラムおよびパッケージの作成
11.4.1
サブプログラムおよびパッケージの作成に必要な権限
11.4.2
サブプログラムおよびパッケージの作成
11.4.3
PL/SQLオブジェクト・サイズの制限
11.4.4
PL/SQLのデータ型
11.4.4.1
PL/SQLのスカラー・データ型
11.4.4.2
PL/SQLのコンポジット・データ型
11.4.4.3
抽象データ型
11.4.5
クライアントへの結果セットの戻し
11.4.5.1
カーソル変数のメリット
11.4.5.2
カーソル変数のデメリット
11.4.5.3
問合せ結果の暗黙的戻し
11.4.6
ファンクションからの大量のデータの戻し
11.4.7
PL/SQLファンクション結果キャッシュ
11.4.8
バルク・バインドの概要
11.4.8.1
コレクションを参照するDML文
11.4.8.2
コレクションを参照するSELECT文
11.4.8.3
コレクションを参照しDMLを戻すFORループ
11.4.9
PL/SQLの動的SQL
11.5
PL/SQLサブプログラムおよびパッケージの変更
11.6
PL/SQLサブプログラムおよびパッケージの削除
11.7
システム固有の実行のためのPL/SQLユニットのコンパイル
11.8
ストアドPL/SQLサブプログラムの起動
11.8.1
ストアド・サブプログラムの起動に必要な権限
11.8.2
Oracleツールを使用した対話形式によるサブプログラムの起動
11.8.3
別のサブプログラムからのサブプログラムの起動
11.8.4
リモート・サブプログラムの起動
11.8.4.1
リモート・サブプログラムのシノニム
11.8.4.2
リモート・サブプログラムを起動するトランザクション
11.9
SQL文からのストアドPL/SQLファンクションの起動
11.9.1
SQL文からPL/SQLファンクションを起動する理由
11.9.2
SQL文の中でPL/SQLファンクションを使用できる箇所
11.9.3
SQL式の中でPL/SQLファンクションを使用できる条件
11.9.4
SQL文から起動したPL/SQLファンクションの副作用の制御
11.9.4.1
SQL文から起動したファンクションの制限
11.9.4.2
パラレルSQL文から起動したPL/SQLファンクション
11.9.4.3
PRAGMA RESTRICT_REFERENCES
11.10
ストアド・サブプログラムのデバッグ
11.10.1
PL/Scope
11.10.2
PL/SQL階層プロファイラ
11.10.3
デバッグ用のコードのコンパイル
11.10.4
PL/SQLストアド・サブプログラムおよびJavaストアド・サブプログラムのデバッグ権限
11.10.5
DBMS_DEBUGパッケージ
11.11
パッケージの無効化とセッションの状態
12
PL/Scopeの使用
12.1
識別子コレクションの指定
12.2
STANDARDおよびDBMS_STANDARDのPL/Scope識別子データ
12.2.1
STANDARDおよびDBMS_STANDARD識別子データの必要性
12.2.2
データベースでのSTANDARDおよびDBMS_STANDARD識別子データの有無
12.2.3
STANDARDおよびDBMS_STANDARDの再コンパイル
12.2.4
無効なPL/SQLオブジェクトを再コンパイルするutlrp.sqlの実行
12.3
PL/Scopeデータによる領域の使用量
12.4
PL/Scopeデータの表示
12.4.1
静的データ・ディクショナリ・ビュー
12.4.1.1
一意キー
12.4.1.2
コンテキスト
12.4.1.3
シグネチャ
12.4.2
デモ・ツール
12.4.3
SQL Developer
12.5
PL/Scopeが収集する識別子の型
12.6
PL/Scopeがレポートする使用方法
12.7
サンプルPL/Scopeセッション
13
PL/SQL階層型プロファイラの使用
13.1
PL/SQL階層プロファイラの概要
13.2
プロファイル・データの収集
13.3
RAWプロファイラ出力の理解
13.3.1
追跡されるサブプログラムのネームスペース
13.3.2
特別なファンクション名
13.4
プロファイル・データの分析
13.4.1
階層プロファイラ表の作成
13.4.2
階層プロファイラ表の理解
13.4.2.1
階層プロファイラ・データベース表の列
13.4.2.2
オーバーロードされたサブプログラムの区別
13.4.2.3
サンプルのPL/SQLプロシージャの階層プロファイラ表
13.4.2.4
オプションを使用したDBMS_HPROF.analyzeのコール例
13.5
plshprofユーティリティ
13.5.1
plshprofのオプション
13.5.2
単一のRAWプロファイラ出力ファイルから生成するHTMLレポート
13.5.2.1
レポートの最初のページ
13.5.2.2
ファンクション・レベルのレポート
13.5.2.3
モジュール・レベルのレポート
13.5.2.4
ネームスペース・レベルのレポート
13.5.2.5
ファンクションの親子レポート
13.5.3
2つのRAWプロファイラ出力ファイルから生成するHTML差分レポート
13.5.3.1
差分レポートの表記規則
13.5.3.2
差分レポートの最初のページ
13.5.3.3
ファンクション・レベルの差分レポート
13.5.3.4
モジュール・レベルの差分レポート
13.5.3.5
ネームスペース・レベルの差分レポート
13.5.3.6
ファンクションの親子差分レポート
14
PL/SQL Webアプリケーションの開発
14.1
PL/SQL Webアプリケーションの概要
14.2
PL/SQL Webアプリケーションの実装
14.2.1
PL/SQLゲートウェイ
14.2.1.1
mod_plsql
14.2.1.2
埋込みPL/SQLゲートウェイ
14.2.2
PL/SQL Web Toolkit
14.3
mod_plsqlゲートウェイを使用したクライアント・リクエストのPL/SQL Webアプリケーションへのマップ
14.4
埋込みPL/SQLゲートウェイの使用
14.4.1
埋込みPL/SQLゲートウェイによるクライアント・リクエストの処理方法
14.4.2
埋込みPL/SQLゲートウェイのインストール
14.4.3
埋込みPL/SQLゲートウェイの構成
14.4.3.1
埋込みPL/SQLゲートウェイの構成: 概要
14.4.3.2
埋込みPL/SQLゲートウェイのユーザー認証に関する構成
14.4.4
埋込みPL/SQLゲートウェイを介したPL/SQLストアド・サブプログラムの起動
14.4.5
埋込みPL/SQLゲートウェイによるアプリケーション・アクセスの保護
14.4.6
埋込みPL/SQLゲートウェイの制限事項
14.4.7
埋込みPL/SQLゲートウェイの使用: 使用例
14.5
PL/SQLを使用したHTML出力の生成
14.6
PL/SQL Webアプリケーションへのパラメータ渡し
14.6.1
HTMLフォームからのリスト・パラメータおよびドロップダウン・リスト・パラメータ渡し
14.6.2
HTMLフォームからのオプション・パラメータおよびチェック・ボックス・パラメータ渡し
14.6.3
HTMLフォームからの入力フィールド・パラメータ渡し
14.6.4
HTMLフォームからの非表示パラメータ渡し
14.6.5
HTMLフォームからのファイルのアップロード
14.6.6
記入済HTMLフォームの送信
14.6.7
HTMLフォームの欠落した入力の処理
14.6.8
Webページ間での状態情報の保持
14.7
PL/SQLサブプログラムでのネットワーク操作の実行
14.7.1
PL/SQLからの電子メールの送信
14.7.2
PL/SQLからのホスト名またはアドレスの取得
14.7.3
PL/SQLからのTCP/IP接続の使用
14.7.4
PL/SQLからのHTTP URLコンテンツの取得
14.7.5
PL/SQLからの表、イメージ・マップ、Cookie、およびCGI変数の使用
15
連続問合せ通知(CQN)の使用
15.1
オブジェクト変更通知(OCN)の概要
15.2
問合せ結果変更通知(QRCN)の概要
15.2.1
保証モード
15.2.2
ベストエフォート・モード
15.3
通知を生成するイベント
15.3.1
DMLトランザクションのコミット
15.3.2
DDL文のコミット
15.3.3
登録解除
15.3.4
グローバル・イベント
15.4
通知内容
15.5
CQNに適したアプリケーション
15.6
CQN登録の作成
15.7
PL/SQLを使用したCQN登録の作成
15.7.1
PL/SQL CQN登録インタフェース
15.7.2
CQN登録オプション
15.7.2.1
「通知タイプ」オプション
15.7.2.2
QRCNモード(QRCN通知タイプのみ)
15.7.2.3
ROWIDオプション
15.7.2.4
操作フィルタ・オプション(OCN通知タイプのみ)
15.7.2.5
トランザクション・ラグ・オプション(OCN通知タイプのみ)
15.7.2.6
通知グループ化オプション
15.7.2.7
信頼可能オプション
15.7.2.8
「通知時にパージ」および「タイムアウト」オプション
15.7.3
CQN登録を作成するための前提条件
15.7.4
オブジェクト変更通知(OCN)に対して登録可能な問合せ
15.7.5
問合せ結果変更通知(QRCN)に対して登録可能な問合せ
15.7.5.1
保証モードでQRCNに対して登録可能な問合せ
15.7.5.2
ベストエフォート・モードでのみQRCNに対して登録可能な問合せ
15.7.5.3
どちらのモードでもQRCNに対して登録不可能な問合せ
15.7.6
PL/SQLを介したCQNに対する問合せの登録
15.7.6.1
PL/SQL通知ハンドラの作成
15.7.6.2
CQ_NOTIFICATION$_REG_INFOオブジェクトの作成
15.7.6.3
通知内の各問合せの識別
15.7.6.4
既存の登録への問合せの追加
15.7.7
CQN登録のベスト・プラクティス
15.7.8
CQN登録のトラブルシューティング
15.7.9
登録の削除
15.7.10
CQNの構成: 使用例
15.7.10.1
PL/SQL通知ハンドラの作成
15.7.10.2
問合せの登録
15.8
OCIを使用したCQN登録の作成
15.8.1
問合せ結果セット通知でのOCI使用
15.8.2
連続問合せ通知の登録のためのOCI使用
15.8.3
連続問合せ通知のOCIサブスクリプション・ハンドル属性の使用
15.8.4
OCI_ATTR_CQ_QUERYID属性の使用
15.8.5
OCI連続問合せ通知の記述子の使用
15.8.5.1
OCI_DTYPE_CHDES
15.8.6
OCIサンプル・プログラムでの連続問合せ通知のデモンストレーション
15.9
CQN登録の問合せ
15.10
通知の解析
15.10.1
CQ_NOTIFICATION$_DESCRIPTORオブジェクトの解析
15.10.2
CQ_NOTIFICATION$_TABLEオブジェクトの解析
15.10.3
CQ_NOTIFICATION$_QUERYオブジェクトの解析
15.10.4
CQ_NOTIFICATION$_ROWオブジェクトの解析
第IV部 アプリケーション開発者向けの高度なトピック
16
Oracle Flashback Technologyの使用
16.1
Oracle Flashback Technologyの概要
16.1.1
アプリケーション開発機能
16.1.2
データベース管理機能
16.2
Oracle Flashback Technologyに関するデータベースの構成
16.2.1
自動UNDO管理に関するデータベースの構成
16.2.2
Oracle Flashback Transaction Queryに関するデータベースの構成
16.2.3
フラッシュバック・トランザクションに関するデータベースの構成
16.2.4
特定のLOB列に対するOracle Flashback操作の有効化
16.2.5
必要な権限の付与
16.3
Oracle Flashback Query (SELECT AS OF)の使用
16.3.1
過去のデータの検査およびリストアの例
16.3.2
Oracle Flashback Queryのガイドライン
16.4
Oracle Flashback Version Queryの使用
16.5
Oracle Flashback Transaction Queryの使用
16.6
Oracle Flashback Transaction QueryとOracle Flashback Version Queryの併用
16.7
DBMS_FLASHBACKパッケージの使用
16.8
フラッシュバック・トランザクションの使用
16.8.1
依存トランザクション
16.8.2
TRANSACTION_BACKOUTパラメータ
16.8.3
TRANSACTION_BACKOUTレポート
16.8.3.1
*_FLASHBACK_TXN_STATE
16.8.3.2
*_FLASHBACK_TXN_REPORT
16.9
フラッシュバック・データ・アーカイブの使用
16.9.1
フラッシュバック・データ・アーカイブの作成
16.9.2
フラッシュバック・データ・アーカイブの変更
16.9.3
フラッシュバック・データ・アーカイブの削除
16.9.4
デフォルト・フラッシュバック・データ・アーカイブの指定
16.9.5
フラッシュバック・データ・アーカイブの有効化および無効化
16.9.6
フラッシュバック・データ・アーカイブが有効な表のDDL文
16.9.7
フラッシュバック・データ・アーカイブ・データの表示
16.9.8
フラッシュバック・データ・アーカイブの使用例
16.9.8.1
使用例: フラッシュバック・データ・アーカイブを使用したデジタル・シュレッディングの実行
16.9.8.2
使用例: フラッシュバック・データ・アーカイブを使用した履歴データへのアクセス
16.9.8.3
使用例: フラッシュバック・データ・アーカイブを使用したレポートの生成
16.9.8.4
使用例: フラッシュバック・データ・アーカイブの監査への使用
16.9.8.5
使用例: フラッシュバック・データ・アーカイブを使用したデータのリカバリ
16.10
Oracle Flashback Technologyの一般ガイドライン
16.11
Oracle Flashback Technologyのパフォーマンス・ガイドライン
16.12
マルチテナント・コンテナ・データベースでのOracle Flashback Technologyの制限
17
プログラミング環境の選択
17.1
アプリケーション・アーキテクチャの概要
17.1.1
クライアント/サーバー・アーキテクチャ
17.1.2
サーバー側のプログラミング
17.1.3
2層アーキテクチャと3層アーキテクチャ
17.2
プログラム・インタフェースの概要
17.2.1
ユーザー・インタフェース
17.2.2
ステートフル・ユーザー・インタフェースとステートレス・ユーザー・インタフェース
17.3
PL/SQLの概要
17.4
Oracle Database Javaサポートの概要
17.4.1
Oracle JVMの概要
17.4.2
Oracle JDBCの概要
17.4.2.1
Oracle JDBCドライバ
17.4.2.2
JDBC 2.0のサンプル・プログラム
17.4.2.3
JDBC 2.0より前のサンプル・プログラム
17.4.3
Oracle SQLJの概要
17.4.3.1
SQLJのメリット
17.4.3.2
サーバー内のSQLJストアド・サブプログラム
17.4.4
Oracle JDBCとOracle SQLJの比較
17.4.5
Oracle JPublisherの概要
17.4.6
Javaストアド・サブプログラムの概要
17.4.7
Oracle Database Webサービスの概要
17.5
PL/SQLまたはJavaの選択
17.5.1
PL/SQLとJavaの類似性
17.5.2
Javaに対するPL/SQLの利点
17.5.3
PL/SQLに対するJavaの利点
17.6
プリコンパイラの概要
17.6.1
Pro*C/C++プリコンパイラの概要
17.6.2
Pro*COBOLプリコンパイラの概要
17.7
OCIおよびOCCIの概要
17.7.1
OCIおよびOCCIのメリット
17.7.2
OCIおよびOCCIファンクション
17.7.3
OCIおよびOCCIアプリケーションの手続き型要素および非手続き型要素
17.7.4
OCIアプリケーションまたはOCCIアプリケーションの作成
17.8
プリコンパイラまたはOCIの選択
17.9
Oracle Data Provider for .NET (ODP.NET)の概要
17.10
OraOLEDBの概要
18
複数のプログラミング言語を使用したアプリケーションの開発
18.1
複数言語プログラムの概要
18.2
外部プロシージャの概要
18.3
外部プロシージャ用のコール仕様の概要
18.4
外部プロシージャのロード
18.4.1
Cプロシージャの定義
18.4.2
環境の設定
18.4.3
DLLの識別
18.4.4
外部プロシージャの公開
18.5
外部プロシージャの公開
18.5.1
Javaクラス・メソッド用のAS LANGUAGE句
18.5.2
外部Cプロシージャ用のAS LANGUAGE句
18.5.2.1
LIBRARY
18.5.2.2
NAME
18.5.2.3
LANGUAGE
18.5.2.4
CALLING STANDARD
18.5.2.5
WITH CONTEXT
18.5.2.6
PARAMETERS
18.5.2.7
AGENT IN
18.6
Javaクラス・メソッドの発行
18.7
外部Cプロシージャの発行
18.8
コール仕様の位置
18.8.1
例: PL/SQLパッケージ内へのコール仕様の配置
18.8.2
例: PL/SQLパッケージ本体内へのコール仕様の配置
18.8.3
例: ADT仕様内へのコール仕様の配置
18.8.4
例: ADT本体内へのコール仕様の配置
18.8.5
例: AUTHIDを指定したJava
18.8.6
例: オプションのAUTHIDを指定したC
18.8.7
例: パッケージ内でのコール仕様の混合使用
18.9
コール仕様による外部Cプロシージャへのパラメータの受渡し
18.9.1
データ型の指定
18.9.2
外部データ型のマッピング
18.9.3
BY VALUEまたはBY REFERENCEによるパラメータの受渡し
18.9.4
仮パラメータの宣言
18.9.5
デフォルトのデータ型マッピングのオーバーライド
18.9.6
プロパティの指定
18.9.6.1
INDICATOR
18.9.6.2
LENGTHおよびMAXLEN
18.9.6.3
CHARSETIDおよびCHARSETFORM
18.9.6.4
パラメータの再配置
18.9.6.5
SELF
18.9.6.6
BY REFERENCE
18.9.6.7
WITH CONTEXT
18.9.6.8
言語間のパラメータ・モードのマッピング
18.10
CALL文による外部プロシージャの実行
18.10.1
外部プロシージャの事前条件
18.10.1.1
外部プロシージャの権限
18.10.1.2
許可の管理
18.10.1.3
外部プロシージャのシノニムの作成
18.10.2
CALL文の構文
18.10.3
Javaクラス・メソッドのコール
18.10.4
外部Cプロシージャのコール
18.11
複数言語のプログラム・エラーおよび例外処理
18.12
外部Cプロシージャでのサービス・ルーチンの使用
18.12.1
OCIExtProcAllocCallMemory
18.12.2
OCIExtProcRaiseExcp
18.12.3
OCIExtProcRaiseExcpWithMsg
18.13
外部Cプロシージャを使用したコールバックの実行
18.13.1
OCIExtProcGetEnv
18.13.2
OCIコールバック用のオブジェクト・サポート
18.13.3
コールバックに関する制限事項
18.13.4
外部Cプロシージャのデバッグ
18.13.5
例: 外部Cプロシージャのコール
18.13.6
外部Cプロシージャのグローバル変数
18.13.7
外部Cプロシージャの静的変数
18.13.8
外部Cプロシージャに関する制限事項
19
Oracle XAを使用したアプリケーションの開発
19.1
X/Open DTP
19.1.1
DTP用語
19.1.2
必須のパブリック情報
19.2
Oracle XAライブラリ・サブプログラム
19.2.1
Oracle XAライブラリ・サブプログラム
19.2.2
Oracle XAインタフェース拡張機能
19.3
XAアプリケーションの開発およびインストール
19.3.1
DBAまたはシステム管理者の責任
19.3.2
アプリケーション開発者の責任
19.3.3
xa_open文字列の定義
19.3.3.1
xa_open文字列の構文
19.3.3.2
xa_open文字列の必須フィールド
19.3.3.3
xa_open文字列のオプション・フィールド
19.3.4
プリコンパイラでのOracle XAの使用
19.3.4.1
デフォルトのデータベースでのプリコンパイラの使用
19.3.4.2
指定されたデータベースでのプリコンパイラの使用
19.3.5
OCIでのOracle XAの使用
19.3.6
Oracle XAを使用したトランザクション制御の管理
19.3.7
プリコンパイラ・アプリケーションの例
19.3.8
プリコンパイラまたはOCIアプリケーションのTPMアプリケーションへの移行
19.3.9
Oracle XAライブラリ・スレッド・セーフティの管理
19.3.9.1
オープン文字列でのスレッドの指定
19.3.9.2
Oracle XAのスレッドにおける制限事項
19.3.10
DBMS_XAパッケージの使用
19.4
XAアプリケーションのトラブルシューティング
19.4.1
Oracle XAトレース・ファイルへのアクセス
19.4.1.1
xa_open文字列DbgFl
19.4.1.2
トレース・ファイルの位置
19.4.2
インダウトまたはペンディングのOracle XAトランザクションの管理
19.4.3
SYSアカウント表を使用したOracle XAトランザクションの監視
19.5
Oracle XAの問題および制限事項
19.5.1
Oracle XAアプリケーションでのデータベース・リンクの使用
19.5.2
Oracle XAアプリケーションでのトランザクション・ブランチの管理
19.5.3
Oracle Real Application Clusters (Oracle RAC)でのOracle XAの使用
19.5.3.1
GLOBAL_TXN_PROCESSES初期化パラメータ
19.5.3.2
Oracle RACでのトランザクション・ブランチの管理
19.5.3.3
Oracle RACでのDTPサービス(10.2)を使用したインスタンス・リカバリの管理
19.5.3.4
Oracle RACのXIDのグローバル一意性
19.5.3.5
密結合と疎結合
19.5.4
SQLに基づくOracle XAの制限事項
19.5.4.1
ロールバックおよびコミット
19.5.4.2
DDL文
19.5.4.3
セッションの状態
19.5.4.4
EXEC SQL
19.5.5
その他の制限事項
20
パブリッシュ・サブスクライブ・モデルでのアプリケーションの開発
20.1
パブリッシュ・サブスクライブ・モデルの概要
20.2
パブリッシュ・サブスクライブのアーキテクチャ
20.2.1
データベース・イベント
20.2.2
Oracle Advanced Queuing
20.2.3
クライアント通知
20.3
パブリッシュ・サブスクライブの概念
20.4
パブリッシュ・サブスクライブ・メカニズムの例
21
Oracle ODBC Driverの使用方法
21.1
Oracle ODBC Driverについて
21.2
すべてのユーザー
21.2.1
Oracle ODBC Driver
21.2.1.1
Oracle ODBC Driverとは
21.2.1.2
新機能および変更された機能
21.2.1.3
サポートされていない機能
21.2.1.4
インストールによって作成されるファイル
21.2.1.5
ドライバの準拠レベル
21.2.1.6
既知の制限
21.2.2
構成タスク
21.2.2.1
Oracle Net Servicesの構成
21.2.2.2
データソースの構成
21.2.2.3
「Oracle ODBCドライバ構成」ダイアログ・ボックス
21.2.3
oraodbc.iniファイルの変更
21.2.3.1
ロック・タイムアウトの短縮
21.2.4
データソースへの接続
21.2.4.1
Oracleデータソースへの接続
21.2.5
トラブルシューティング
21.2.5.1
Oracle ODBC Driverの最初の使用
21.2.5.2
パスワードの期限切れ
21.3
上級ユーザー
21.3.1
Oracle ODBC DriverのTNSサービス名の作成
21.3.2
SQL文
21.3.3
データ型
21.3.4
データ型の実装
21.3.5
データ型に関する制限事項
21.3.6
エラー・メッセージ
21.4
プログラマ
21.4.1
接続文字列のフォーマット
21.4.2
SQLDriverConnectの実装
21.4.3
プログラムでのロック・タイムアウトの削減
21.4.4
odbc32.lib (Windows)またはlibodbc.so (UNIX)とのリンク
21.4.5
ROWIDの情報の取得
21.4.6
WHERE句でのROWID
21.4.7
結果セットの有効化
21.4.8
EXEC構文の有効化
21.4.9
Oracle RAC環境における接続障害のイベント通知の有効化
21.4.10
ODBCを通じた暗黙的結果機能の使用
21.4.11
サポートされている機能
21.4.11.1
APIへの準拠
21.4.11.2
ODBC API関数の実装
21.4.11.3
ODBC SQL構文の実装
21.4.11.4
データ型の実装(プログラミング)
21.4.12
Unicodeのサポート
21.4.12.1
ODBC環境内でのUnicodeのサポート
21.4.12.2
ODBC APIでのUnicodeのサポート
21.4.12.3
ドライバ・マネージャのUnicode機能
21.4.12.4
SQLGetDataのパフォーマンス
21.4.12.5
Unicodeのサンプル
21.4.13
パフォーマンスとチューニング
21.4.13.1
一般的なODBCプログラミングのヒント
21.4.13.2
データソース構成オプション
21.4.13.3
DATEおよびTIMESTAMPデータ型
22
識別コード・パッケージの使用
22.1
識別の概念
22.2
識別コード・パッケージの概要
22.3
識別コード・パッケージの使用
22.3.1
MGD_ID ADTを使用したOracle DatabaseへのRFIDタグの格納
22.3.1.1
MGD_ID列型を使用した表の作成と、列へのEPCタグ・エンコーディングの格納
22.3.1.2
RFIDタグを表現するMGD_IDオブジェクトの構成
22.3.1.3
データベース表へのMGD_IDオブジェクトの挿入
22.3.1.4
MGD_ID列型の問合せ
22.3.2
MGD_ID列型のメンバー・ファンクションを使用したファンクション索引の構築
22.3.3
MGD_ID ADTファンクションの使用
22.3.3.1
MGD_IDオブジェクトとget_componentファンクションの使用
22.3.3.2
標準的な表現からのタグ・データの解析
22.3.3.3
フィールドからのタグ表現の再構成
22.3.3.4
タグ表現間の翻訳
22.3.4
識別コードのカテゴリの定義と既存のカテゴリへのコード体系の追加
22.3.4.1
識別コードのカテゴリの作成
22.3.4.2
新規作成したカテゴリへの2つのメタデータ・スキームの追加
22.4
識別コード・パッケージ・タイプ
22.5
DBMS_MGD_ID_UTLパッケージ
22.6
識別コード・メタデータ表およびビュー
22.7
電子製品コード(EPC)の概念
22.7.1
RFIDテクノロジとEPCバージョン1.1コード体系
22.7.2
製品コードの概念と現在の使用
22.7.2.1
電子製品コード(EPC)
22.7.2.2
Global Trade Identification Number (GTIN)およびSerializable Global Trade Identification Number (SGTIN)
22.7.2.3
Serial Shipping Container Code (SSCC)
22.7.2.4
Global Location Number (GLN)およびSerializable Global Location Number (SGLN)
22.7.2.5
Global Returnable Asset Identifier (GRAI)
22.7.2.6
Global Individual Asset Identifier (GIAI)
22.7.2.7
RFID EPCネットワーク
22.8
Oracle Database Tag Data Translationスキーマ
23
スキーマ・オブジェクトの依存性の理解
23.1
スキーマ・オブジェクトの依存性の概要
23.2
オブジェクトの依存性の問合せ
23.3
オブジェクトのステータス
23.4
依存オブジェクトの無効化
23.4.1
セッションの状態と参照パッケージ
23.4.2
セキュリティ認可
23.5
無効化を回避するためのガイドライン
23.5.1
パッケージの最後へのアイテムの追加
23.5.2
ビューを介した各表の参照
23.6
オブジェクトの再有効化
23.6.1
コンパイルされたがエラーがあるオブジェクトの再有効化
23.6.2
未許可オブジェクトの再有効化
23.6.3
無効SQLオブジェクトの再有効化
23.6.4
無効PL/SQLオブジェクトの再有効化
23.7
スキーマの範囲内での名前解決
23.8
ローカル依存性の管理
23.9
リモート依存性の管理
23.9.1
ローカル・データベース・プロシージャとリモート・データベース・プロシージャの間の依存性
23.9.2
その他のリモート・オブジェクト間の依存性
23.9.3
アプリケーションの依存性
23.10
リモート・プロシージャ・コール(RPC)の依存性管理
23.10.1
タイムスタンプ依存性モード
23.10.2
RPCシグネチャ依存性モード
23.10.2.1
パラメータの名前とデフォルト値の変更
23.10.2.2
パラメータ・モードINの指定の変更
23.10.2.3
サブプログラム本体の変更
23.10.2.4
パラメータのデータ型クラスの変更
23.10.2.5
パッケージ・タイプの変更
23.10.3
依存性モードの制御
23.10.3.1
依存性の解決
23.10.3.2
依存性管理の提案
23.11
共有SQLの依存性管理
24
エディションベースの再定義の使用
24.1
エディション
24.1.1
エディション・オブジェクトと非エディション・オブジェクト
24.1.1.1
エディション・オブジェクトと非エディション・オブジェクトの名前解決
24.1.1.2
エディション・オブジェクトに依存可能な非エディション・オブジェクト
24.1.1.3
エディション対応、およびエディション非対応スキーマ・オブジェクト・タイプ
24.1.1.4
ユーザーに対するエディションの有効化
24.1.1.5
EDITIONABLEおよびNONEDITIONABLEプロパティ
24.1.1.6
エディション・オブジェクトの規則
24.1.2
エディションの作成
24.1.3
エディション・オブジェクトおよび変更時のコピー
24.1.4
一部のユーザーに対してエディションを使用可能にする
24.1.5
すべてのユーザーに対してエディションを使用可能にする
24.1.6
現行エディションとセッション・エディション
24.1.6.1
最初のセッション・エディション
24.1.6.2
セッション・エディションの変更
24.1.6.3
現行エディション名とセッション・エディション名の表示
24.1.6.4
現行エディションがセッション・エディションと異なる状況
24.1.7
エディションのリタイア
24.1.8
エディションの削除
24.2
エディショニング・ビュー
24.2.1
エディショニング・ビューの作成
24.2.2
パーティション拡張エディショニング・ビュー名
24.2.3
エディショニング・ビューの書込み可能性の変更
24.2.4
エディショニング・ビューの置換
24.2.5
実表の削除または名前変更
24.2.6
実表への索引と制約の追加
24.2.7
SQLオプティマイザ索引ヒント
24.3
crosseditionトリガー
24.3.1
forward crosseditionトリガー
24.3.2
reverse crosseditionトリガー
24.3.3
crosseditionトリガーとエディションの相互作用
24.3.3.1
表示可能なトリガー
24.3.3.2
起動できるトリガーの種類
24.3.3.3
起動順序
24.3.3.4
crosseditionトリガーの実行
24.3.4
crosseditionトリガーの作成
24.3.4.1
forward crosseditionトリガー本体のコーディング
24.3.5
アップグレード前の表現をアップグレード後の表現に変換
24.3.5.1
更新内容の消失の防止
24.3.6
crosseditionトリガーの削除
24.4
EBR機能に関する情報の表示
24.4.1
エディションに関する情報の表示
24.4.2
エディションニング・ビューに関する情報の表示
24.4.3
crosseditionトリガーに関する情報の表示
24.5
アプリケーションをアップグレードするためのEBRの使用
24.5.1
アプリケーションでのエディショニング・ビューの使用準備
24.5.2
エディションのみを使用するEBRの手順
24.5.3
エディショニング・ビューを使用するEBRの手順
24.5.4
crosseditionトリガーを使用するEBRの手順
24.5.5
アプリケーション・アップグレードのロールバック
24.5.6
使用されていない表の列が占める領域の再利用
24.5.7
例: アプリケーションをアップグレードするためのEBRの使用
24.5.7.1
既存のアプリケーション
24.5.7.2
アプリケーションでのエディショニング・ビューの使用準備
24.5.7.3
アプリケーションをアップグレードするためのEBRの使用
25
トランザクション・ガードの使用
25.1
トランザクション・ガードが解決する問題
25.2
トランザクション・ガードが提供するソリューション
25.3
トランザクション・ガードの概念および範囲
25.3.1
論理トランザクション識別子(LTXID)
25.3.2
最大1回の実行
25.3.3
トランザクション・ガードのカバレッジ
25.3.4
トランザクション・ガードの除外
25.4
トランザクション・ガードのデータベース構成
25.4.1
構成チェックリスト
25.4.2
トランザクション履歴表
25.4.3
サービス・パラメータ
25.5
トランザクション・ガードを使用するアプリケーションの開発
25.5.1
トランザクション・ガードの標準使用
25.5.2
LTXIDの使用の詳細
25.5.3
接続プールLTXIDの使用
25.5.4
トランザクション・ガード開発の追加要件
25.6
トランザクション・ガードおよびアプリケーション・コンティニュイティとの関係
26
アプリケーション・コンティニュイティの有効化
26.1
アプリケーション・コンティニュイティの概要
26.1.1
アプリケーション・コンティニュイティの主な概念
26.2
アプリケーション・コンティニュイティの操作および使用
26.2.1
データベース・セッションに対するアプリケーション・コンティニュイティの動作
26.2.2
Java用のアプリケーション・コンティニュイティの使用に関するアクション
26.2.2.1
アプリケーション・コンティニュイティが透過的になるケース
26.2.2.2
Java用のアプリケーション・コンティニュイティに対するOracle JDBCの構成
26.2.2.3
Java用のアプリケーション・コンティニュイティに対するOracle Databaseの構成
26.2.2.4
Java用のアプリケーション・コンティニュイティでの接続初期化コールバックの登録(オプション)
26.2.2.5
Java用のアプリケーション・コンティニュイティでの再接続の遅延
26.2.2.6
計画済停止に対するアプリケーション・コンティニュイティの使用
26.2.2.7
アプリケーション・コンティニュイティなしでの実行
26.2.2.8
Java用のアプリケーション・コンティニュイティでのリプレイの無効化
26.2.2.9
リプレイなしでのセッションの中断または切断
26.2.3
可変オブジェクトとアプリケーション・コンティニュイティ
26.2.4
セッション状態一貫性
26.2.4.1
動的なセッション状態の一貫性
26.2.4.2
静的なセッション状態の一貫性
26.3
アプリケーション・コンティニュイティの潜在的な副作用
26.4
アプリケーション・コンティニュイティに関する制限および他の考慮事項
索引