ヘッダーをスキップ
Pro*C/C++プログラマーズ・ガイド
11
g
リリース2(11.2)
B61343-01
ライブラリ
製品
索引
次へ
目次
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
Pro*C/C++の新機能
Oracle11gリリース2(11.2)でのPro*C/C++の新機能
Oracle11gリリース1(11.1)でのPro*C/C++の新機能
第I部 概要および概念
1
概要
Oracleプリコンパイラ
Oracle Pro*C/C++プリコンパイラを使用する理由
SQLを使用する理由
PL/SQLを使用する理由
Pro*C/C++プリコンパイラの利点
ディレクトリ構造
既知の問題、制限および回避策
ライブラリ・ファイル
よくある質問(FAQ)
VARCHARについて説明してください。
Pro*C/C++はOracle Call Interfaceのコールを生成しますか。
Pro*C/C++を使用せず、SQLLIBコールを使用してコーディングできますか。
PL/SQLのストアド・プロシージャをPro*C/C++プログラムからコールできますか。
C++のコードを作成し、Pro*C/C++を使用してプリコンパイルできますか。
SQL文の任意の場所でバインド変数を使用できますか。
Pro*C/C++の文字処理がよくわかりません。
文字ポインタについて何か特別なことはありますか。
Pro*C/C++でSPOOLが動作しない理由を説明してください。
サンプル・プログラムのオンライン版はどこにありますか。
アプリケーションをコンパイルしてリンクする方法を教えてください。
Pro*C/C++では構造体をホスト変数として使用できますか。
再帰関数内で埋込みSQLを使用した場合、その再帰関数をPro*C/C++で使用できますか。
Pro*C/C++のすべてのリリースを、Oracleサーバーのすべてのバージョンで使用できますか。
アプリケーションを実行すると、必ずORA-01405エラー(フェッチした列の値がNULLです)が発生します。
すべてのSQLLIB関数はプライベート関数ですか。
新しいオブジェクト型はOracleでどのようにサポートされていますか。
互換性、アップグレードおよび移行
2
プリコンパイラの概要
埋込みSQLプログラムの主な概要
埋込みSQL文
実行文とディレクティブ
埋込みSQLの構文
静的SQL文と動的SQL文の対比
埋込みPL/SQLブロック
ホスト変数および標識変数
Oracleのデータ型
配列
データ型の同値化
プライベートSQL領域、カーソルおよびアクティブ・セット
トランザクション
エラーおよび警告
SQL99構文サポート
埋込みSQLアプリケーションの開発ステップ
プログラミングのガイドライン
コメント
定数
宣言部
デリミタ
ファイルの長さ
関数プロトタイプ
ANSI_C
KR_C
CPP
ヒントの長さ
ホスト変数名
行の継続
行の長さ
MAXLITERALのデフォルト値
演算子
文の終了記号
条件付きプリコンパイル
記号の定義
SELECT文の例
分割プリコンパイル
ガイドライン
カーソルの参照
MAXOPENCURSORSの指定
単一のSQLCAの使用
コンパイルおよびリンク
サンプル表
サンプル・データ
サンプル・プログラム: 単純な問合せ
サンプル・プログラム: SQL99構文を使用する単純な問合せ
3
データベースの概要
データベースへの接続
ALTER AUTHORIZATION句を使用したパスワードの変更
標準CONNECT
CONNECT文でのパスワードの変更
Oracle Netを使用した接続
自動接続
AUTO_CONNECTプリコンパイラ・オプション
SYSDBAまたはSYSOPERシステム権限
高度な接続オプション
予備知識
同時ログイン
デフォルトのデータベースおよび接続
明示的接続
単一の明示的接続
複数の明示的接続
データの整合性の確認
暗黙的接続
単一の暗黙的接続
複数の暗黙的接続
トランザクション用語の定義
トランザクションがデータベースを保護する方法
トランザクションの開始および終了方法
COMMIT文の使用
DECLARE CURSOR文のWITH HOLD句
CLOSE_ON_COMMITプリコンパイラ・オプション
SAVEPOINT文の使用
ROLLBACK文
文レベル・ロールバック
RELEASEオプション
SET TRANSACTION文
デフォルト・ロックの上書き
FOR UPDATE OFの使用
制限
LOCK TABLEの使用
コミットにまたがるフェッチ
分散トランザクションの処理
ガイドライン
アプリケーションの設計
ロックの取得
PL/SQLの使用方法
4
データ型とホスト変数
Oracleのデータ型
内部データ型
外部データ型
VARCHAR2
NUMBER
INTEGER
FLOAT
STRING
VARNUM
LONG
VARCHAR
ROWID
DATE
RAW
VARRAW
LONG RAW
UNSIGNED
LONG VARCHAR
LONG VARRAW
CHAR
CHARZ
CHARF
その他の外部データ型
日時および時間隔のデータ型
ANSI DATE
TIMESTAMP
TIMESTAMP WITH TIME ZONE
TIMESTAMP WITH LOCAL TIME ZONE
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
日時を使用した予期しない結果の回避
ホスト変数
ホスト変数の宣言
記憶域クラス指定子
型修飾子
ホスト変数の参照
制限
標識変数
INDICATORキーワード
標識変数の使用例
標識変数のガイドライン
Oracle制限事項
VARCHAR変数
VARCHAR変数の宣言
VARCHAR変数の参照
VARCHAR変数にNULLを戻す
VARCHAR変数を使用したNULLの挿入
関数へのVARCHAR変数の受渡し
VARCHAR配列コンポーネントの長さを調べる方法
サンプル・プログラム: sqlvcp()の使用
カーソル変数
カーソル変数の宣言
カーソル変数の割当て
カーソル変数のオープン
スタンドアロン・ストアド・プロシージャでのオープン
戻り型
カーソル変数のクローズと解放
OCIでのカーソル変数の使用(リリース7のみ)
制限
例: cv_demo.sqlおよびsample11.pc
cv_demo.sql
sample11.pc
コンテキスト変数
ユニバーサルROWID
SQLRowidGet()
ホスト構造体
ホスト構造体と配列
PL/SQLレコード
ネストした構造体と共用体
ホスト・インジケータ構造体
サンプル・プログラム: カーソルとホスト構造体
ポインタ変数
ポインタ変数の宣言
ポインタ変数の参照
構造体ポインタ
グローバリゼーション・サポート
NCHAR変数
CHARACTER SET [IS] NCHAR_CS
環境変数NLS_NCHAR
VAR文でのCONVBUFSZ句
埋込みSQL内の文字列
文字列の制限事項
標識変数
5
高度なトピック
文字データ
CHAR_MAPプリコンパイラ・オプション
CHAR_MAPオプションのインラインでの使用方法
DBMSオプションおよびCHAR_MAPオプションの影響
入力時
入力時
出力時
VARCHAR変数およびポインタ
入力時
出力時
Unicode変数
Unicode変数の使用に関する制限事項
データ型変換
データ型の同値化
ホスト変数の同値化
ユーザー定義型同値化
REFERENCE句
CHARF外部データ型
EXEC SQL VARおよびTYPEディレクティブ
例: データ型の同値化(sample4.pc)
Cプリプロセッサ
Pro*C/C++プリプロセッサの機能
プリプロセッサ・ディレクティブ
無視されるディレクティブ
ORA_PROCマクロ
ヘッダー・ファイルの格納場所の指定
プリプロセッサの例
#defineの使用
他のプリプロセッサの制限
#includeに使用できないSQL文
SQLCA、ORACAおよびSQLDAの組込み
EXEC SQL INCLUDEおよび#includeのまとめ
定義済マクロ
インクルード・ファイル
プリコンパイル済ヘッダー・ファイル
プリコンパイル済ヘッダー・ファイルの作成
プリコンパイル済ヘッダー・ファイルの使用
例
冗長なファイル・インクルード
複数のプリコンパイル済ヘッダー・ファイル
ヘッダー・ファイルのリスト
オプションの効果
DEFINEおよびINCLUDEオプション
CODEおよびPARSEオプション
使用上の注意
Oracleプリプロセッサ
記号の定義
Oracleプリプロセッサの例
数値定数の評価
Pro*C/C++での数値定数
数値定数の規則および例
OCIリリース8のSQLLIB拡張相互運用性
OCIリリース8環境でのランタイム・コンテキスト
OCIリリース8環境ハンドルのパラメータ
OCIリリース8へのインタフェース
SQLEnvGet()
SQLSvcCtxGet()
OCIリリース8コールの埋込み
OCIリリース7コールの埋込み
LDAの設定
リモートの複数接続
SQLLIBパブリック関数の新しい名前
X/Openアプリケーションの開発
Oracle固有の問題
Oracleへの接続
トランザクション制御
OCIコール(リリース7のみ)
リンク
6
埋込みSQL
ホスト変数
出力ホスト変数および入力ホスト変数
標識変数
NULL値の挿入
戻されたNULL値
NULL値のフェッチ
NULLのテスト
切り捨てられた値
基本的なSQL文
SELECT文
使用可能な句
INSERT文
副問合せの使用方法
UPDATE文
DELETE文
WHERE句
DML RETURNING句
カーソル
DECLARE CURSOR文
OPEN文
FETCH文
CLOSE文
スクロール可能カーソル
スクロール可能カーソルの使用方法
DECLARE SCROLL CURSOR
OPEN
FETCH
CLOSE
CLOSE_ON_COMMITプリコンパイラ・オプション
PREFETCHプリコンパイラ・オプション
オプティマイザ・ヒント
ヒントの発行
修正実行計画
SQLファイル
例
LOGファイル
CURRENT OF句
制限
カーソル文
スクロール不可カーソルを使用する完全な例
スクロール可能カーソルを使用する完全な例
位置付け更新
7
埋込みPL/SQL
PL/SQLの利点
パフォーマンス向上
Oracleとの統合
カーソルFORループ
プロシージャとファンクション
パッケージ
PL/SQL表
ユーザー定義のレコード
埋込みPL/SQLブロック
ホスト変数
例: PL/SQLでのホスト変数の使用
複雑な例
VARCHAR疑似型
制限
標識変数
NULLの処理
切り捨てられた値
ホスト配列
ARRAYLEN文
オプション・キーワードEXECUTE
埋込みPL/SQLのカーソルの使用方法
ストアドPL/SQLおよびJavaサブプログラム
ストアド・サブプログラムの生成
ストアドPL/SQLまたはJavaサブプログラムのコール
無名PL/SQLブロック
リモート・アクセス
CALL文
CALLの例
ストアド・サブプログラムに関する情報を得る方法
外部プロシージャ
外部プロシージャの制限
外部プロシージャの作成
SQLExtProcError()
動的SQLの使用
8
ホスト配列
配列を使用する理由
ホスト配列の宣言
制限
配列の最大サイズ
SQL文での配列の使用
ホスト配列の参照
インジケータ配列の使用方法
Oracle制限事項
ANSI制限事項および要件
配列への選択
カーソルのフェッチ
sqlca.sqlerrd[2]の使用方法
FETCHされる行数
スクロール可能カーソルのフェッチ
サンプル・プログラム3: ホスト配列
サンプル・プログラム: スクロール可能カーソルを使用するホスト配列
ScrollDemo2.pc
ホスト配列の制限
NULL値のフェッチ
切り捨てられた値のフェッチ
配列での挿入
配列での挿入の制限
配列での更新
配列での更新の制限
配列での削除
配列での削除の制限
FOR句の使用方法
FOR句の制限
SELECT文中
CURRENT OF句を使用する場合
WHERE句の使用方法
構造体配列
構造体の配列の使用方法
構造体の配列の制限
構造体の配列の宣言
変数のガイドライン
構造体配列へのポインタの宣言
例
例1: スカラー構造体の単純な配列
例2: スカラーの配列と構造体の配列との組合せ使用
例3: 複数の構造体配列と1つのカーソルとの組合せ使用
例4: 個々の配列メンバーおよび構造体メンバーの参照
例5: 標識変数の使用(特殊な場合)
例6: 構造体配列へのポインタの使用
CURRENT OFの疑似実行
追加の配列の挿入/選択構文の使用
暗黙的バッファ挿入の使用
スクロール可能カーソル
9
ランタイム・エラーの処理
エラー処理の必要性
エラー処理の代替手段
状態変数
SQLコミュニケーション領域
SQLSTATE状態変数
SQLSTATEの宣言
SQLSTATEの値
SQLSTATEの使用
SQLSTATEを宣言する場合
SQLSTATEを宣言
しない
場合
SQLCODEの宣言
SQLCAを使用したエラー・レポートの主要コンポーネント
ステータス・コード
警告フラグ
処理済行数
解析エラー・オフセット
エラー・メッセージ・テキスト
SQLコミュニケーション領域(SQLCA)の使用
SQLCAの宣言
SQLCAの内容
SQLCAの構造体
sqlcaid
sqlcabc
sqlcode
sqlerrm
sqlerrp
sqlerrd
sqlwarn
sqlext
PL/SQLの考慮事項
エラー・メッセージの全文の取得
WHENEVERディレクティブの使用
WHENEVERの条件
SQLWARNING
SQLERROR
NOT FOUND
WHENEVERのアクション
CONTINUE
DO
DO BREAK
DO CONTINUE
GOTO label_name
STOP
WHENEVERの例
DO BREAKとDO CONTINUEの利用
WHENEVER文の適用範囲
WHENEVERのガイドライン
文の位置
データの終わり条件の処理
無限ループの回避
アドレス指定可能度の維持
エラー後の戻り
SQL文のテキスト取得
制限
サンプル・プログラム
Oracle通信領域(ORACA)の使用
ORACAの宣言
ORACAを使用可能にする
ORACAの内容
ランタイム・オプションの選択
ORACAの構造体
oracaid
oracabc
oracchf
oradbgf
orahchf
orastxtf
診断情報
orastxt
orasfnm
oraslnr
カーソル・キャッシュ統計情報
orahoc
oramoc
oracoc
oranor
oranpr
oranex
ORACAの使用例
10
プリコンパイラのオプション
プリコンパイラのコマンド
大/小文字区別
プリコンパイラのオプション
環境変数
構成ファイル
オプション値の優先順位
マクロ・オプションおよびマイクロ・オプション
プリコンパイル中の状況
オプションの適用範囲
Windowsプラットフォーム用Pro*C/C++プリコンパイラの問題
構成ファイル
CODE
DBMS
INCLUDE
PARSE
クイック・リファレンス
オプションの入力
コマンドライン
インライン
EXEC ORACLEの用途
EXEC ORACLEの適用範囲
プリコンパイラ・オプションの使用
AUTO_CONNECT
CHAR_MAP
CINCR
CLOSE_ON_COMMIT
CMAX
CMIN
CNOWAIT
CODE
COMMON_PARSER
COMP_CHARSET
CONFIG
CPOOL
CPP_SUFFIX
CTIMEOUT
DB2_ARRAY
DBMS
DEF_SQLCODE
DEFINE
DURATION
DYNAMIC
ERRORS
ERRTYPE
EVENTS
FIPS
HEADER
HOLD_CURSOR
IMPLICIT_SVPT
INAME
INCLUDE
INTYPE
LINES
LNAME
LTYPE
MAX_ROW_INSERT
MAXLITERAL
MAXOPENCURSORS
MODE
NATIVE_TYPES
NLS_CHAR
NLS_LOCAL
OBJECTS
ONAME
ORACA
OUTLINE
OUTLNPREFIX
PAGELEN
PARSE
PREFETCH
RELEASE_CURSOR
RUNOUTLINE
SELECT_ERROR
STMT_CACHE
SYS_INCLUDE
THREADS
TYPE_CODE
UNSAFE_NULL
USERID
UTF16_CHARSET
VARCHAR
VERSION
11
マルチスレッド・アプリケーション
スレッド
Pro*C/C++のランタイム・コンテキスト
ランタイム・コンテキストの使用モデル
単一のランタイム・コンテキストを共有する複数のスレッド
複数のランタイム・コンテキストを共有する複数のスレッド
マルチスレッド・アプリケーションのユーザー・インタフェース
THREADSオプション
埋込みSQL文およびディレクティブ
EXEC SQL ENABLE THREADS
EXEC SQL CONTEXT ALLOCATE
EXEC SQL CONTEXT USE
EXEC SQL CONTEXT FREE
CONTEXT USEの例
プログラミングの考慮事項
マルチスレッドの例
接続プーリング
接続プーリング機能の使用方法
接続プーリングを使用可能にする方法
接続プーリングのコマンドライン・オプション
例
パフォーマンス・チューニング
デモ・プログラム: 1
例
デモ・プログラム: 2
ケース1: CMINを変更
ケース2: CMAXを変更
例
第II部 アプリケーション
12
C++アプリケーション
C++サポートの理解
特殊なマクロ処理は不要
C++のプリコンパイル
コードの生成
コードの解析
出力ファイル名の拡張子
システム・ヘッダー・ファイル
サンプル・プログラム
cppdemo1.pc
cppdemo2.pc
cppdemo3.pc
13
Oracle動的SQL
動的SQL
動的SQLの長所と短所
動的SQLの使用
動的SQL文の要件
動的SQL文の処理方法
動的SQLの使用方法
方法1
方法2
方法3
方法4
ガイドライン
一般的なエラーの回避
方法1の使用方法
サンプル・プログラム: 動的SQL方法1
方法2の使用方法
USING句
サンプル・プログラム: 動的SQL方法2
方法3の使用方法
PREPARE
DECLARE
OPEN
FETCH
CLOSE
サンプル・プログラム: 動的SQL方法3
方法4の使用方法
SQLDAの必要性
DESCRIBE文
SQLDA
Oracle方法4の実装
制限
DECLARE STATEMENT文の使用方法
ホスト配列の使用
PL/SQLの使用方法
方法1の場合
方法2の場合
方法3の場合
Oracle方法4の場合
動的SQL文のキャッシュ
14
ANSI動的SQL
ANSI動的SQLの基本
プリコンパイラのオプション
ANSI SQL文の概要
サンプル・コード
Oracle拡張機能
参照セマンティクス
配列を使用したバルク操作
構造体配列のサポート
オブジェクト型のサポート
ANSI動的SQLプリコンパイラ・オプション
動的SQL文の完全な構文
ALLOCATE DESCRIPTOR
DEALLOCATE DESCRIPTOR
GET DESCRIPTOR
SET DESCRIPTOR
PREPAREの使用
DESCRIBE INPUT
DESCRIBE OUTPUT
EXECUTE
EXECUTE IMMEDIATEの使用
DYNAMIC DECLARE CURSORの使用
OPENカーソル
FETCH
動的カーソルのCLOSE
旧バージョンのOracle動的方法4との相違点
制限
サンプル・プログラム
ansidyn1.pc
ansidyn2.pc
15
Oracle動的SQL: 方法4
方法4の特殊要件
方法4が特別な理由
Oracleに必要な情報
情報の格納位置
SQLDAの参照方法
情報の取得方法
SQLDAの説明
SQLDAの用途
複数のSQLDA
SQLDAの宣言
SQLDAの割当て
SQLDA変数の使用
N
変数
V
変数
L
変数
T
変数
I
変数
F
変数
S
変数
M
変数
C
変数
X
変数
Y
変数
Z
変数
予備知識
データの変換
内部データ型
外部データ型
データ型の強制変換
精度と位取りの抽出
NULL/NOT NULLデータ型の処理
基本ステップ
各ステップの詳細
ホスト文字列の宣言
SQLDAの宣言
記述子用の記憶域の割当て
DESCRIBEへの最大数の設定
ホスト文字列への問合せテキストの設定
ホスト文字列からの問合せのPREPARE
カーソルの宣言
バインド変数のDESCRIBE
プレースホルダの最大数の再設定
バインド変数の値の取得と記憶域の割当て
カーソルのOPEN
選択リストのDESCRIBE
選択リスト項目の最大数の再設定
各選択リスト項目の長さとデータ型の再設定
アクティブ・セットからの行のFETCH
選択リストの値の取得と処理
記憶域の割当て解除
カーソルのCLOSE
ホスト配列の使用
sample12.pc
サンプル・プログラム: 動的SQL方法4
サンプル・プログラム: スクロール可能カーソルを使用する動的SQL方法4
16
LOB
LOB
内部LOB
外部LOB
BFILEのセキュリティ
LOBとLONGおよびLONG RAWの対比
LOBロケータ
テンポラリLOB
LOBバッファリング・サブシステム
プログラムでのLOBの使用方法
LOBにアクセスする3種類の方法
アプリケーションのLOBロケータ
LOBの初期化
内部LOB
外部LOB
テンポラリLOB
LOBの解放
LOB文のルール
すべてのLOB文に対するルール
LOBバッファリング・サブシステムに対するルール
ホスト変数に対するルール
LOB文
APPEND
ASSIGN
CLOSE
COPY
CREATE TEMPORARY
DISABLE BUFFERING
ENABLE BUFFERING
ERASE
FILE CLOSE ALL
FILE SET
FLUSH BUFFER
FREE TEMPORARY
LOAD FROM FILE
OPEN
READ
TRIM
WRITE
DESCRIBE
LOBおよびナビゲーショナル・アクセス用インタフェース
一時オブジェクト
永続オブジェクト
ナビゲーショナル・アクセス用インタフェースの例
LOBプログラムの例
BLOBのREADおよびファイル書込みの例
ファイルの読込みおよびBLOBのWRITEの例
lobdemo1.pc
17
オブジェクト
オブジェクトの概要
オブジェクト型
オブジェクト型のREF
型の継承
Pro*C/C++でのオブジェクト型の使用
NULLインジケータ
オブジェクト・キャッシュ
永続オブジェクト対一時コピー
連想アクセス用インタフェース
連想アクセス用インタフェースを使用する場合
ALLOCATE
FREE
CACHE FREE ALL
連想アクセス用インタフェースを使用したオブジェクトへのアクセス
ナビゲーショナル・アクセス用インタフェース
ナビゲーショナル・アクセス用インタフェースを使用する場合
ナビゲーション文に使用されるルール
OBJECT CREATE
OBJECT DEREF
OBJECT RELEASE
OBJECT DELETE
OBJECT UPDATE
OBJECT FLUSH
オブジェクトへのナビゲーショナル・アクセス
オブジェクト属性とC言語のデータ型の変換
OBJECT SET
OBJECT GET
オブジェクト・オプションの設定/取得
CONTEXT OBJECT OPTION SET
CONTEXT OBJECT OPTION GET
オブジェクトに対する新しいプリコンパイラ・オプション
VERSION
DURATION
OBJECTS
INTYPE
ERRTYPE
オブジェクトに対するSQLCHECKのサポート
実行時のタイプ・チェック
Pro*C/C++のオブジェクト例
連想アクセス
ナビゲーショナル・アクセス
型の継承のサンプル・コード
ナビゲーショナル・アクセスのサンプル・コード
C言語の構造体の使用
REFの使用
REFのC言語の構造体の生成
REFの宣言
埋込みSQLでのREFの使用
OCIDate、OCIString、OCINumberおよびOCIRawの使用
OCIDate、OCIString、OCINumber、OCIRawの宣言
埋込みSQLでのOCI型の使用
OCI型の操作
Pro*C/C++の新しいデータベース型の概要
動的SQLでのOracleデータ型使用の制限
18
コレクション
コレクション
NESTED TABLE
VARRAY
C言語およびコレクション
コレクションの記述子
ホスト変数と標識変数の宣言
コレクションの操作
自律型コレクション・アクセス
コレクション要素アクセス
アクセスのルール
自律型アクセス
要素アクセス
標識変数
自律型バインド
要素バインド
OBJECT GETおよびSET
COLLECTION文
COLLECTION GET
COLLECTION SET
COLLECTION RESET
COLLECTION APPEND
COLLECTION TRIM
COLLECTION DESCRIBE
表について
コレクションを使用する場合の規則
コレクション・サンプル・コード
型および表の作成
GETおよびSETの例
DESCRIBEの例
RESETの例
サンプル・プログラム: coldemo1.pc
19
Object Type Translator(OTT)
OTT概要
Object Type Translator(OTT)
データベースにおける型の作成
OTTの起動
コマンドライン
構成ファイル
INTYPEファイル
OTTコマンドライン
OTT
Userid
INTYPE
OUTTYPE
CODE
HFILE
INITFILE
INITFUNC
INTYPEファイル
OTTデータ型のマッピング
オブジェクト・データ型のC言語へのマッピング
OTT型マッピングの例
NULLインジケータ構造体
OTTでの型の継承のサポート
置換可能なオブジェクト属性
OUTTYPEファイル
OCIアプリケーションでのOTTの使用
OCIによるオブジェクトのアクセスと操作
初期化関数のコール
初期化関数のタスク
Pro*C/C++アプリケーションでのOTTの使用
OTT参照
OTTコマンドライン構文
OTTパラメータ
USERID
INTYPE
OUTTYPE
CODE
INITFILE
INITFUNC
HFILE
CONFIG
ERRTYPE
CASE
SCHEMA_NAMES
TRANSITIVE
OTTパラメータの使用場所
INTYPEファイルの構造
INTYPEファイルの型指定
ネストした#includeファイル生成
SCHEMA_NAMESの使用方法
デフォルト名のマッピング
制限
ファイル名比較
20
ユーザー・イグジット
ユーザー・イグジット
ユーザー・イグジットを作成する理由
ユーザー・イグジットの開発
ユーザー・イグジットの作成
変数の要件
EXEC TOOLS文
Toolsetユーザー・イグジットの作成
EXEC TOOLS SET
EXEC TOOLS GET
EXEC TOOLS SET CONTEXT
EXEC TOOLS GET CONTEXT
EXEC TOOLS MESSAGE
ユーザー・イグジットのコール
ユーザー・イグジットへのパラメータの引渡し
フォームへの値のリターン
IAP定数
WHENEVERの使用方法
例
ユーザー・イグジットのプリコンパイルおよびコンパイル
サンプル・プログラム: ユーザー・イグジット
GENXTBユーティリティの使用方法
SQL*Formsへのユーザー・イグジットのリンク
ガイドライン
イグジットの命名
Oracleへの接続
I/Oコールの発行
ホスト変数の使用方法
表の更新
コマンドの発行
第III部 付録
A
新機能
このリリースの新機能
新しい外部データ型
旧リリースの新機能
構造体の配列
プリコンパイル済ヘッダー・ファイル
CALL文
実行時のパスワードの変更
各国語キャラクタ・セットのサポート
CHAR_MAPプリコンパイラ・オプション
SQLLIB関数の新規名
WHENEVER文の新規アクション
オブジェクト型のサポート
Object Type Translator(OTT)
LOBサポート
ANSI動的SQL
コレクション
その他のトピック
Unicodeサポート
UTF16_CHARSETオプション
PREFETCHオプション
外部プロシージャ
PL/SQLからのJavaのコール
DML RETURNING句
ユニバーサルROWID
CONNECT文のSYSDBA/SYSOPER権限
CLOSE_ON_COMMITプリコンパイラ・オプション
文字列
エラー・メッセージ・コード
LINESオプション
以前のリリースからの移行
B
予約語、キーワードおよびネームスペース
予約語およびキーワード
Oracleの予約済ネームスペース
C
パフォーマンス・チューニング
パフォーマンスを低下させる原因
パフォーマンスの改善方法
ホスト配列の使用
埋込みPL/SQLの使用
SQL文の最適化
オプティマイザ・ヒント
トレース機能
文のキャッシュ
索引の使用
行レベル・ロックの利用
不要な解析の排除
明示カーソルの操作
カーソルの制御
カーソル管理オプションの使用
SQL領域とカーソル・キャッシュ
リソースの使用
実行回数の少ない場合
実行回数の多い場合
埋込みPL/SQLの考慮事項
パラメータの相互作用
不要な再解析の回避
接続プーリングの使用方法
D
構文検査と意味検査
構文検査と意味検査
検査の種類および範囲の制御
SQLCHECK=SEMANTICSの指定
意味検査の使用許可
Oracleサーバーへの接続
DECLARE TABLEの使用
DECLARE TYPEの使用
SQLCHECK=SYNTAXの指定
SQLCHECKオプションの入力
E
システム固有の参照
システム固有の情報
標準ヘッダー・ファイルの位置
Cコンパイラ用インクルード・ファイルの位置指定
ANSI Cサポート
構造体コンポーネントの位置合せ
整数とROWIDのサイズ
バイト順序
Oracleサーバーへの接続
XAライブラリでのリンク
Pro*C/C++実行可能ファイルの位置
システム構成ファイル
INCLUDEオプションの構文
コンパイルとリンク
ユーザー・イグジット
F
埋込みSQL文およびディレクティブ
プリコンパイラのディレクティブと埋込みSQL文の概要
文の説明
構文図の読み方
必須のキーワードとパラメータ
オプションのキーワードとパラメータ
構文ループ
複数パーツの図
Oracleの名前
文の終了記号
ALLOCATE(実行可能埋込みSQL拡張機能)
ALLOCATE DESCRIPTOR(実行可能埋込みSQL)
CACHE FREE ALL(実行可能埋込みSQL拡張機能)
CALL(実行可能埋込みSQL)
CLOSE(実行可能埋込みSQL)
COLLECTION APPEND(実行可能埋込みSQL拡張機能)
COLLECTION DESCRIBE(実行可能埋込みSQL拡張機能)
COLLECTION GET(実行可能埋込みSQL拡張機能)
COLLECTION RESET(実行可能埋込みSQL拡張機能)
COLLECTION SET(実行可能埋込みSQL拡張機能)
COLLECTION TRIM(実行可能埋込みSQL拡張機能)
COMMIT(実行可能埋込みSQL)
CONNECT(実行可能埋込みSQL拡張機能)
CONTEXT ALLOCATE(実行可能埋込みSQL拡張機能)
CONTEXT FREE(実行可能埋込みSQL拡張機能)
CONTEXT OBJECT OPTION GET(実行可能埋込みSQL拡張機能)
CONTEXT OBJECT OPTION SET(実行可能埋込みSQL拡張機能)
CONTEXT USE(Oracle埋込みSQLディレクティブ)
DEALLOCATE DESCRIPTOR(埋込みSQL文)
DECLARE CURSOR(埋込みSQLディレクティブ)
DECLARE DATABASE(Oracle埋込みSQLディレクティブ)
DECLARE STATEMENT(埋込みSQLディレクティブ)
DECLARE TABLE(Oracle埋込みSQLディレクティブ)
DECLARE TYPE(Oracle埋込みSQLディレクティブ)
DELETE(実行可能埋込みSQL)
DESCRIBE(実行可能埋込みSQL拡張機能)
DESCRIBE DESCRIPTOR(実行可能埋込みSQL)
ENABLE THREADS(実行可能埋込みSQL拡張機能)
EXECUTE ... END-EXEC(実行可能埋込みSQL拡張機能)
EXECUTE(実行可能埋込みSQL)
EXECUTE DESCRIPTOR(実行可能埋込みSQL)
EXECUTE IMMEDIATE(実行可能埋込みSQL)
FETCH(実行可能埋込みSQL)
FETCH DESCRIPTOR(実行可能埋込みSQL)
FREE(実行可能埋込みSQL拡張機能)
GET DESCRIPTOR(実行可能埋込みSQL)
INSERT(実行可能埋込みSQL)
LOB APPEND(実行可能埋込みSQL拡張機能)
LOB ASSIGN(実行可能埋込みSQL拡張機能)
LOB CLOSE(実行可能埋込みSQL拡張機能)
LOB COPY(実行可能埋込みSQL拡張機能)
LOB CREATE TEMPORARY(実行可能埋込みSQL拡張機能)
LOB DESCRIBE(実行可能埋込みSQL拡張機能)
LOB DISABLE BUFFERING(実行可能埋込みSQL拡張機能)
LOB ENABLE BUFFERING(実行可能埋込みSQL拡張機能)
LOB ERASE(実行可能埋込みSQL拡張機能)
LOB FILE CLOSE ALL(実行可能埋込みSQL拡張機能)
LOB FILE SET(実行可能埋込みSQL拡張機能)
LOB FLUSH BUFFER(実行可能埋込みSQL拡張機能)
LOB FREE TEMPORARY(実行可能埋込みSQL拡張機能)
LOB LOAD(実行可能埋込みSQL拡張機能)
LOB OPEN(実行可能埋込みSQL拡張機能)
LOB READ(実行可能埋込みSQL拡張機能)
LOB TRIM(実行可能埋込みSQL拡張機能)
LOB WRITE(実行可能埋込みSQL拡張機能)
OBJECT CREATE(実行可能埋込みSQL拡張機能)
OBJECT DELETE(実行可能埋込みSQL拡張機能)
OBJECT DEREF(実行可能埋込みSQL拡張機能)
OBJECT FLUSH(実行可能埋込みSQL拡張機能)
OBJECT GET(実行可能埋込みSQL拡張機能)
OBJECT RELEASE(実行可能埋込みSQL拡張機能)
OBJECT SET(実行可能埋込みSQL拡張機能)
OBJECT UPDATE(実行可能埋込みSQL拡張機能)
OPEN(実行可能埋込みSQL)
OPEN DESCRIPTOR(実行可能埋込みSQL)
PREPARE(実行可能埋込みSQL)
REGISTER CONNECT(実行可能埋込みSQL拡張機能)
ROLLBACK(実行可能埋込みSQL)
SAVEPOINT(実行可能埋込みSQL)
SELECT(実行可能埋込みSQL)
SET DESCRIPTOR(実行可能埋込みSQL)
TYPE(Oracle埋込みSQLディレクティブ)
UPDATE(実行可能埋込みSQL)
VAR(Oracle埋込みSQLディレクティブ)
WHENEVER(埋込みSQLディレクティブ)
G
サンプル・プログラム
サンプル・プログラムの説明
サンプル表の作成
サンプル・プログラムのビルド
pcmake.batを使用する方法
Microsoft Visual Studioを使用する方法
サンプル.preファイルのパスの設定
H
Microsoft Visual Studio .NET 2002/2003へのPro*C/C++の統合
Pro*C/C++のMicrosoft Visual Studio .NET 2002/2003プロジェクトへの統合
Pro*C/C++実行可能ファイルの位置の指定
Pro*C/C++ヘッダー・ファイルの位置の指定
プロジェクトへの.pcファイルの追加
プロジェクトへの.cファイルの参照の追加
プロジェクトへのPro*C/C++のライブラリの追加
カスタム・ビルド・オプションの指定
「ツール」メニューへのPro*C/C++の追加
索引