プライマリ・コンテンツに移動
Oracle® Database Oracleプリコンパイラのためのプログラマーズ・ガイド
12
c
リリース1 (12.1)
B71398-03
索引
次
目次
表一覧
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
このマニュアルの構成
関連ドキュメント
表記規則
1
概要
Oracleプリコンパイラ
代替言語
Oracleプリコンパイラを使用する理由
SQLを使用する理由
PL/SQLを使用する理由
Oracleプリコンパイラの機能と利点
業界標準を満たすOracleプリコンパイラ
要件
準拠
FIPSフラガー
FIPSオプション
認定
2
基礎の学習
埋込みSQLプログラミングの基本概念
埋込みSQL文
実行文と宣言文
埋込みSQL文の構文
静的SQL文と動的SQL文
埋込みPL/SQLブロック
ホスト変数およびインジケータ変数
Oracleデータ型
配列
データ型の同値化
プライベートSQL領域、カーソルおよびアクティブ・セット
トランザクション
エラーおよび警告
埋込みSQLアプリケーション開発の手順
サンプル・プログラム
サンプル表
サンプル・データ
3
プログラム要件への対応
宣言部
例
INCLUDE文
SQLCA
Oracleデータ型
内部データ型
CHAR
DATE
LONG
LONG RAW
MLSLABEL
NUMBER
RAW
ROWID
VARCHAR2
SQL擬似列およびファンクション
ROWLABEL列
外部データ型
CHAR
CHARF
CHARZ
DATE
DECIMAL
DISPLAY
FLOAT
INTEGER
LONG
LONG RAW
LONG VARCHAR
LONG VARRAW
MLSLABEL
NUMBER
RAW
ROWID
STRING
UNSIGNED
VARCHAR
VARCHAR2
VARNUM
VARRAW
データ型変換
DATE値
RAW値およびLONG RAW値
ホスト変数の宣言および参照
例
VARCHAR変数
ホスト変数のガイドライン
インジケータ変数の宣言および参照
INDICATORキーワード
例
インジケータ変数のガイドライン
データ型の同値化
データ型の同値化を行う理由
ホスト変数の同値化
例
CHARFデータ型指定子の使用について
ガイドライン
グローバリゼーション・サポート
グローバリゼーション・サポートのマルチバイト・キャラクタ・セット
埋込みSQL内の文字列
動的SQL
埋込みDDL
グローバリゼーション・サポートのマルチバイト・ホスト変数
制限
空白埋込み
インジケータ変数
同時接続
予備知識
デフォルトのデータベースおよび接続
明示的接続
単一の明示的接続ン
複数の明示的接続
暗黙的接続
単一の暗黙的接続
複数の暗黙的接続
Oracle Call Interface(OCI)コールの埋込み
LDAの設定について
リモートおよび複数の接続
X/Openアプリケーションの開発について
Oracle固有の問題
Oracleへの接続について
トランザクション制御
OCIコール
リンク
4
埋込みSQLの使用方法
ホスト変数の使用について
出力変数と入力変数
インジケータ変数の使用について
入力変数
出力変数
NULLの挿入
戻されたNULLの処理
NULLのフェッチ
Nullの検査
切り捨てられた値のフェッチ
基本のSQL文
行の選択
使用可能な句
行の挿入
副問合せの使用方法
行の更新
行の削除
WHERE句の使用
カーソル
カーソルの宣言
カーソルのオープン
カーソルからのフェッチ
カーソルのクローズ
CURRENT OF句の使用方法
制限
一般的な文の順序
完全な例
カーソル変数
カーソル変数の宣言について
カーソル変数の割当て
カーソル変数のオープン
カーソル変数からのフェッチ
カーソル変数のクローズ
5
埋込みPL/SQLの使用方法
PL/SQLの利点
パフォーマンスの向上
Oracleとの統合
カーソルFORループ
サブプログラム
パラメータ・モード
パッケージ
PL/SQL表
ユーザー定義のレコード
PL/SQLブロックの埋込みについて
ホスト変数の使用について
例
複雑な例
VARCHAR擬似型
インジケータ変数の使用について
NULLの処理
切り捨てられた値の処理
ホスト配列の使用について
ARRAYLEN文
カーソルの使用について
代替方法
ストアド・サブプログラム
ストアド・サブプログラムの作成
ストアド・サブプログラムのコール
リモート・アクセス
ストアド・サブプログラムに関する情報の取得
動的PL/SQLの使用について
制限事項
6
Oracleプリコンパイラの実行
プリコンパイラのコマンド
プリコンパイル中の状況
プリコンパイラのオプション
デフォルト値
現在の値の確認
大文字と小文字の区別
構成ファイル
オプションの入力
コマンドライン
インライン
利点
EXEC ORACLEの有効範囲
構成ファイル
利点
構成ファイルの使用について
オプション値の設定について
オプションの有効範囲
クイック・リファレンス
プリコンパイラ・オプションの使用について
ASACC
ASSUME_SQLCODE
AUTO_CONNECT
CHAR_MAP
CINCR
CLOSE_ON_COMMIT
CMAX
CMIN
CNOWAIT
CODE
COMMON_NAME
COMMON_PARSER
COMP_CHARSET
COMP_CHARSET
CONFIG
CPOOL
CPP_SUFFIX
CTIMEOUT
DB2_ARRAY
DBMS
DEF_SQLCODE
DEFINE
DURATION
DYNAMIC
ERRORS
ERRTYPE
EVENTS
FIPS
FORMAT
Globalization Support_LOCAL
HEADER
HOLD_CURSOR
HOST
IMPLICIT_SVPT
INAME
INCLUDE
IRECLEN
INTYPE
LINES
LITDELIM
LNAME
LRECLEN
LTYPE
MAXLITERAL
MAXOPENCURSORS
MAX_ROW_INSERT
MODE
MULTISUBPROG
NATIVE_TYPES
NLS_CHAR
NLS_LOCAL
OBJECTS
ONAME
ORACA
ORECLEN
OUTLINE
OUTLNPREFIX
PAGELEN
PARSE
PREFETCH
RELEASE_CURSOR
RUNOUTLINE
SELECT_ERROR
SQLCHECK
STMT_CACHE
SQLCHECK
THREADS
TYPE_CODE
UNSAFE_NULL
USERID
UTF16_CHARSET
VARCHAR
VERSION
XREF
条件付きプリコンパイル
例
シンボルの定義
分割プリコンパイル
ガイドライン
制限
コンパイルおよびリンク
システム依存
マルチバイト・グローバリゼーション・サポートの互換性
7
トランザクションの定義および制御
基本用語
トランザクションによるデータベースの保護
トランザクションの開始および終了方法
COMMIT文の使用について
ROLLBACK文の使用について
文レベルのロールバック
SAVEPOINT文の使用について
RELEASEオプションの使用について
SET TRANSACTION文の使用について
デフォルト・ロックのオーバーライドについて
FOR UPDATE OF句の使用について
制限
LOCK TABLE文の使用について
複数のコミットにわたるフェッチについて
分散トランザクションの処理について
ガイドライン
アプリケーションの設計について
ロックの取得について
PL/SQLの使用について
8
エラーの処理および診断
エラー処理の必要性
エラー処理の代替方法
SQLCODEおよびSQLSTATE
SQLCA
ORACA
MODE={ANSI|ANSI14}の場合の状態変数の使用について
履歴情報
リリース1.5
リリース1.6
リリース1.7
状態変数の宣言について
SQLCODEの宣言
SQLSTATEの宣言
状態変数の組合せ
状態変数の値
SQLCODEの値
SQLSTATEの値
SQL通信領域の使用について
SQLCAの宣言
Pro*COBOLでのSQLCAの宣言について
Pro*FORTRANでのSQLCAの宣言について
SQLCAの内容
エラー・レポートの主要コンポーネント
ステータス・コード
警告フラグ
処理済行数
解析エラー・オフセット
エラー・メッセージ・テキスト
SQLCA構造体
SQLCAID
SQLCABC
SQLCODE
SQLERRM
SQLERRP
SQLERRD
SQLWARN
SQLEXT
PL/SQLの考慮事項
エラー・メッセージの全文の取得
WHENEVER文の使用方法
SQLWARNING
SQLERROR
NOT FOUND
CONTINUE
DO
GOTO
STOP
例
有効範囲
ガイドライン
SQL文のテキストの取得
Oracle通信領域の使用について
ORACAの宣言
ORACAの有効化
ORACAの内容
ランタイム・オプションの選択
ORACAの構造体
ORACAID
ORACABC
ORACCHF
ORADBGF
ORAHCHF
ORASTXTF
診断
ORASTXT
ORASFNM
ORASLNR
カーソル・キャッシュ統計情報
ORAHOC
ORAMOC
ORACOC
ORANOR
ORANPR
ORANEX
例
9
ホスト配列の使用方法
ホスト配列
配列を使用する理由
ホスト変数の宣言
配列の次元設定
制限
SQL文での配列の使用について
配列への選択について
一括フェッチ
フェッチされる行数
制限
NULLのフェッチについて
切り捨てられた値のフェッチについて
配列での挿入について
配列での更新について
配列での削除について
制限
インジケータ配列の使用について
FOR句の使用について
制限
SELECT文中
CURRENT OF句との併用
WHERE句の使用について
CURRENT OF句の疑似実行について
SQLERRD(3)の使用について
10
動的SQLの使用方法
動的SQL
動的SQLの長所と短所
動的SQLを使用する場合
動的SQL文の要件
動的SQL文の処理
動的SQLの使用方法
方法1
方法2
方法3
方法4
ガイドライン
一般的エラーの回避
方法1の使用について
EXECUTE IMMEDIATE文
例
方法2の使用について
USING句
例
方法3の使用について
PREPARE
DECLARE
OPEN
FETCH
CLOSE
例
方法4の使用方法
SQLDAの必要性
DESCRIBE文
SQLDA
方法4の実行
DECLARE STATEMENT文の使用について
ホスト配列の使用方法
PL/SQLの使用について
方法1の場合
方法2の場合
方法3の場合
方法4の場合
注意
11
ユーザー・イグジットの作成
ユーザー・イグジット
ユーザー・イグジットを作成する理由
ユーザー・イグジットの開発
ユーザー・イグジットの作成
変数の要件
IAF GET文
IAF PUT文
ユーザー・イグジットのコール
ユーザー・イグジットへのパラメータの引渡し
フォームへの値の返却
IAP定数
SQLIEM関数
WHENEVERの使用方法
例
ユーザー・イグジットのプリコンパイルおよびコンパイルについて
GENXTBユーティリティの使用について
SQL*Formsへのユーザー・イグジットのリンクについて
SQL*Formsユーザー・イグジットのガイドライン
イグジットの命名
Oracleへの接続
I/Oコールの発行
ホスト変数の使用
表の更新
コマンドの発行
EXEC TOOLS文
EXEC TOOLS SET
EXEC TOOLS GET
EXEC TOOLS SET CONTEXT
EXEC TOOLS GET CONTEXT
EXEC TOOLS MESSAGE
A
新機能
インジケータ変数を使用しないNULLのフェッチについて
DBMS=V7およびMODE=ORACLEの使用について
関連のエラー・メッセージ
追加の配列挿入/選択構文
SQL99構文のサポート
実行計画の修正について
暗黙的バッファ挿入の使用について
動的SQL文のキャッシュ
スクロール可能なカーソル
プラットフォーム・エンディアン・サポート
柔軟なB領域の長さ
B
Oracleの予約語、キーワードおよびネームスペース
Oracleの予約語
Oracleのキーワード
PL/SQLの予約語
Oracleの予約済ネームスペース
C
パフォーマンス・チューニング
パフォーマンス低下の原因
パフォーマンスの改善方法
ホスト配列の使用
埋込みPL/SQLの使用
SQL文の最適化
オプティマイザ・ヒント
ヒントの与え方
トレース機能
索引の使用について
行レベル・ロックの利用
不要な解析の排除について
明示カーソルの処理について
カーソルの制御
カーソル管理オプションの使用について
プライベートSQL領域とカーソル・キャッシュ
リソースの使用
実行回数が少ない場合
実行回数が多い場合
パラメータの相互作用
D
構文およびセマンティックのチェック
構文およびセマンティックのチェック
チェックの種類および範囲の制御について
SQLCHECK=SEMANTICSの指定について
セマンティック・チェックの有効化について
Oracleへの接続について
DECLARE TABLEの使用について
E
埋込みSQLコマンドおよびディレクティブ
プリコンパイラのディレクティブと埋込みSQLコマンドの概要
コマンドの説明について
構文図の読み方
必須のキーワードおよびパラメータ
オプションのキーワードおよびパラメータ
構文ループ
マルチパート図
データベース・オブジェクト
ALLOCATE(実行可能埋込みSQL拡張機能)
Allocateの用途
Allocateの前提条件
Allocateの構文
Allocateのキーワードおよびパラメータ
Allocateの使用上の注意
Allocateの関連トピック
CLOSE(実行可能埋込みSQL)
CLOSEの用途
CLOSEの前提条件
CLOSEの構文
CLOSEのキーワードおよびパラメータ
CLOSEの使用上の注意
CLOSEの例
CLOSEの関連トピック
COMMIT(実行可能埋込みSQL)
COMMITの用途
COMMITの前提条件
COMMITの構文
COMMITのキーワードおよびパラメータ
COMMITの使用上の注意
COMMITの関連トピック
CONNECT(実行可能埋込みSQL拡張機能)
CONNECTの用途
CONNECTの前提条件
CONNECTの構文
CONNECTのキーワードおよびパラメータ
CONNECTの使用上の注意
CONNECTの関連トピック
DECLARE CURSOR(埋込みSQLディレクティブ)
DECLARE CURSORの用途
DECLARE CURSORの前提条件
DECLARE CURSORの構文
DECLARE CURSORのキーワードおよびパラメータ
DECLARE CURSORの使用上の注意
DECLARE CURSORの例
DECLARE CURSORの関連トピック
DECLARE DATABASE(Oracle埋込みSQLディレクティブ)
DECLARE DATABASEの用途
DECLARE DATABASEの前提条件
DECLARE DATABASEの構文
DECLARE DATABASEのキーワードおよびパラメータ
DECLARE DATABASEの使用上の注意
DECLARE DATABASEの例
DECLARE DATABASEの関連トピック
DECLARE STATEMENT(埋込みSQLディレクティブ)
DECLARE STATEMENTの用途
DECLARE STATEMENTの前提条件
DECLARE STATEMENTの構文
DECLARE STATEMENTのキーワードおよびパラメータ
DECLARE STATEMENTの使用上の注意
DECLARE STATEMENTの例I
DECLARE STATEMENTの例II
DECLARE STATEMENTの関連トピック
DECLARE TABLE(Oracle埋込みSQLディレクティブ)
DECLARE TABLEの用途
DECLARE TABLEの前提条件
DECLARE TABLEの構文
DECLARE TABLEのキーワードおよびパラメータ
DECLARE TABLEの使用上の注意
DECLARE TABLEの例
DECLARE TABLEの関連トピック
DELETE(実行可能埋込みSQL)
DELETEの用途
DELETEの前提条件
DELETEの構文
DELETEのキーワードおよびパラメータ
DELETEの使用上の注意
DELETEの例
DELETEの関連トピック
DESCRIBE(実行可能埋込みSQL)
DESCRIBEの用途
DESCRIBEの前提条件
DESCRIBEの構文
DESCRIBEのキーワードおよびパラメータ
DESCRIBEの使用上の注意
DESCRIBEの例
DESCRIBEの関連トピック
EXECUTE ... END-EXEC(実行可能埋込みSQL拡張機能)
EXECUTE ... END-EXECの用途
EXECUTE ... END-EXECの前提条件
EXECUTE ... END-EXECの構文
EXECUTE ... END-EXECのキーワードおよびパラメータ
EXECUTE ... END-EXECの使用上の注意
EXECUTE ... END-EXECの例
EXECUTE ... END-EXECの関連トピック
EXECUTE(実行可能埋込みSQL)
EXECUTEの用途
EXECUTEの前提条件
EXECUTEの構文
EXECUTEのキーワードおよびパラメータ
EXECUTEの使用上の注意
EXECUTEの例
EXECUTEの関連トピック
EXECUTE IMMEDIATE(実行可能埋込みSQL)
EXECUTE IMMEDIATEの用途
EXECUTE IMMEDIATEの前提条件
EXECUTE IMMEDIATEの構文
EXECUTE IMMEDIATEのキーワードおよびパラメータ
EXECUTE IMMEDIATEの使用上の注意
EXECUTE IMMEDIATEの例
EXECUTE IMMEDIATEの関連トピック
FETCH(実行可能埋込みSQL)
FETCHの用途
FETCHの前提条件
FETCHの構文
FETCHのキーワードおよびパラメータ
FETCHの使用上の注意
FETCHの例
FETCHの関連トピック
INSERT(実行可能埋込みSQL)
INSERTの用途
INSERTの前提条件
INSERTの構文
INSERTのキーワードおよびパラメータ
INSERTの使用上の注意
INSERTの例I
INSERTの例II
INSERTの関連トピック
OPEN(実行可能埋込みSQL)
OPENの用途
OPENの前提条件
OPENの構文
OPENのキーワードおよびパラメータ
OPENの使用上の注意
OPENの例
OPENの関連トピック
PREPARE(実行可能埋込みSQL)
PREPAREの用途
PREPAREの前提条件
PREPAREの構文
PREPAREのキーワードおよびパラメータ
PREPAREの使用上の注意
PREPAREの例
PREPAREの関連トピック
ROLLBACK(実行可能埋込みSQL)
ROLLBACKの用途
ROLLBACKの前提条件
ROLLBACKの構文
ROLLBACKのキーワードおよびパラメータ
ROLLBACKの使用上の注意
ROLLBACKの例I
ROLLBACKの例II
ROLLBACKの分散トランザクション
ROLLBACKの例III
ROLLBACKの関連トピック
SAVEPOINT(実行可能埋込みSQL)
SAVEPOINTの用途
SAVEPOINTの前提条件
SAVEPOINTの構文
SAVEPOINTのキーワードおよびパラメータ
SAVEPOINTの使用上の注意
SAVEPOINTの関連トピック
SELECT(実行可能埋込みSQL)
SELECTの用途
SELECTの前提条件
SELECTの構文
SELECTのキーワードおよびパラメータ
SELECTの使用上の注意
SELECTの例
SELECTの関連トピック
UPDATE(実行可能埋込みSQL)
UPDATEの用途
UPDATEの前提条件
UPDATEの構文
UPDATEのキーワードおよびパラメータ
UPDATEの使用上の注意
UPDATEの例
UPDATEの関連トピック
VAR(Oracle埋込みSQLディレクティブ)
VARの用途
VARの前提条件
VARの構文
VARのキーワードおよびパラメータ
VARの使用上の注意
VARの例
VARの関連トピック
WHENEVER(埋込みSQLディレクティブ)
WHENEVERの用途
WHENEVERの前提条件
WHENEVERの構文
WHENEVERのキーワードおよびパラメータ
WHENEVERの使用上の注意
WHENEVERの例
WHENEVERの関連トピック
索引