プライマリ・コンテンツに移動
Oracle® C++ Call Interfaceプログラマーズ・ガイド
12
c
リリース1 (12.1)
B72464-02
索引
次
目次
例一覧
図一覧
表一覧
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
Oracle C++ Call Interfaceプログラマーズ・ガイドの今回のリリースでの変更点
Oracle Database 12
c
リリース1 (12.1)
での変更点
1
OCCIの概要
OCCIの概要
OCCIの利点
OCCIでのC++アプリケーションのビルド
OCCIの機能
手続き型および非手続き型要素
SQL文の処理
データ定義言語文
制御文
データ操作言語文
問合せ
PL/SQLの概要
OCCI/SQLの特殊用語
オブジェクトのサポート
クライアント側オブジェクト・キャッシュ
オブジェクト用のランタイム環境
連想アクセス用インタフェースおよびナビゲーショナル・アクセス用インタフェース
C (OCI)との相互運用性
メタデータ・クラス
オブジェクト型トランスレータ・ユーティリティ
追加のサポート
OCCIデモのビルド
Oracle Technology NetworkでのOCCI
2
インストールとアップグレード
Oracle C++ Call Interfaceのインストール
アップグレードに関する考慮点
Oracle Databaseバージョンの決定
コンパイル時のOracleクライアント・バージョンの決定
実行時のOracleクライアントおよびサーバーのバージョンの決定
Instant Client
Instant Clientの利点
Instant Clientのインストール
Instant Clientの使用
UNIXにおけるInstant Client共有ライブラリのパッチ
データ共有ライブラリおよびzipファイルの再生成
Instant Clientのデータベース接続名
OCCI Instant Clientの環境変数
Instant Client Light (English)
Instant Client Light (English)のグローバリゼーション設定
Instant Client Light (English)の使用
Instant Client Light (English)のインストール
Microsoft Visual C++でのOCCIの使用
3
C++によるOracle Databaseへのアクセス
データベースへの接続
環境の作成と終了
接続のオープンとクローズ
プラガブル・データベースのサポート
接続プーリング
接続プールの使用
ステートレスな接続プーリング
データベース常駐接続プーリング
SQLのDDL文とDML文の実行
文オブジェクトの作成
SQLコマンドを実行する文オブジェクトの作成
文オブジェクトの再利用
文オブジェクトの終了
OCCI環境で使用するSQL文の種類
標準的な文
パラメータ化された文
コール可能文
ストリーム読取り/書込み
行変更の反復
SQL問合せの実行
結果セットの使用
問合せの指定
プリフェッチ・カウントの設定によるパフォーマンスの最適化
文の動的実行
文のステータスの定義
増加した行数と追加されたエラー・コード範囲のデータ型の使用
SELECT操作での増加した行数の使用
INSERT、UPDATEおよびDELETE操作での増加した行数の使用
トランザクションのコミット
文キャッシュ
例外処理
NULLおよび切捨てデータの処理
4
オブジェクト・プログラミング
オブジェクト・プログラミングの概要
OCCIでのC++のオブジェクトの操作
永続オブジェクト
一時オブジェクト
値
C++アプリケーションでのオブジェクトの表現
永続オブジェクトと一時オブジェクトの作成
OTTユーティリティによるオブジェクト表現の作成
OCCIによるC++アプリケーションの開発
基本的なオブジェクト・プログラム構造
基本的なオブジェクト操作のフロー
OCCIによるOracleへのC++アプリケーションの移行
連想アクセスの概要
SQLによるオブジェクトへのアクセス
値の挿入と変更
ナビゲーショナル・アクセスの概要
データベース・サーバーからのオブジェクト参照(REF)の取出し
オブジェクトの確保
オブジェクト属性の操作
オブジェクトのマークおよび変更のフラッシュ
オブジェクトへの変更済(使用済)のマーク付け
データベースへの変更の記録
オブジェクト・キャッシュでのガベージ・コレクション
参照のトランザクション一貫性の確保
複合オブジェクト検索の概要
複合オブジェクト検索
複合オブジェクトのプリフェッチ
コレクションの操作
埋込みオブジェクトのフェッチ
NULL
オブジェクト参照の使用
データベースからのオブジェクトの削除
型の継承
代用性
NOT INSTANTIABLEの型とメソッド
OCCIでの型の継承のサポート
OTTでの型の継承のサポート
サンプルOCCIアプリケーション
5
データ型
Oracleデータ型の概要
OCCI型とデータ変換
内部データ型
文字列とバイト配列
ユニバーサルROWID(UROWID)
外部データ型
外部データ型の説明
データ変換
LOBデータ型のデータ変換
日付、タイムスタンプおよび間隔データ型のデータ変換
6
メタデータ
メタデータの概要
ID列のメタデータ
データベース・メタデータの記述
メタデータのコード例
属性参照
パラメータ属性
表およびビューの属性
プロシージャ、ファンクションおよびサブプログラムの属性
パッケージ属性
型属性
型属性の属性
型メソッド属性
コレクション属性
シノニム属性
順序属性
列属性
引数属性および結果属性
リスト属性
スキーマ属性
データベース属性
7
LOBによるプログラミング
LOBの概要
内部LOBの概要
外部LOBの概要
LOBの格納
OCCIアプリケーションでのLOBの作成
LOBのオープンおよびクローズの制限
LOBの読取りおよび書込み
LOBの読取り
LOBの書込み
LOBの読取りおよび書込みのパフォーマンス向上
LOBの更新
複数のLOBの読取りおよび書込み
LOB属性を含むオブジェクトの使用
SecureFilesの使用
SecureFileの圧縮の使用
SecureFilesの暗号化の使用
SecureFilesの重複除外の使用
SecureFilesの圧縮、暗号化および重複除外の結合
SecureFilesのLOBの型および定数
8
オブジェクト型トランスレータ・ユーティリティ
オブジェクト型トランスレータ・ユーティリティの概要
OTTユーティリティの使用
データベースでの型の作成
OTTユーティリティの起動
OTTパラメータの指定
コマンドラインでのOTTユーティリティの起動
OTTユーティリティのパラメータ
OTTパラメータの指定可能な場所
ファイル名の比較に関する制限
Microsoft WindowsでのOTTコマンド
INTYPEファイルの使用
INTYPEファイルの概要
INTYPEファイルの構造
ネストされたインクルード・ファイル(#include)の生成
OTTユーティリティのデータ型マッピング
デフォルトの名前のマッピング
OUTTYPEファイルの概要
OTTユーティリティとOCCIアプリケーション
OTTユーティリティによって生成されるC++クラス
マップ・レジストリ関数
C++クラスの拡張
ユーザー追加コードの引継ぎ
OTTマーカーのプロパティ
OTTマーカーの使用
9
グローバリゼーションおよびUnicodeのサポート
グローバリゼーションおよびUnicodeのサポートの概要
キャラクタ・セットの指定
グローバリゼーションおよびUnicodeのサポートのデータ型
UStringデータ型
マルチバイトおよびUTF16データ
CLOBおよびNCLOBデータ型
オブジェクトおよびOTTサポート
10
Oracle Streamsアドバンスト・キューイング
Oracle Streams Advanced Queuingの概要
OCCIでのAQ実装
メッセージ
エージェント
プロデューサ
コンシューマ
リスナー
サブスクリプション
メッセージの作成
メッセージ・ペイロード
メッセージ・プロパティ
メッセージのエンキュー
メッセージのデキュー
デキュー・オプション
メッセージのリスニング
通知を受けるための登録
パブリッシュ・サブスクライブ通知
通知コールバック
メッセージ形式の変換
11
Oracle XAライブラリ
XAおよびOCCIによるアプリケーション開発
XAサポートのためのAPI
12
C++アプリケーションのパフォーマンスの最適化
透過的アプリケーション・フェイルオーバー
透過的アプリケーション・フェイルオーバーの使用方法
オブジェクトと透過的アプリケーション・フェイルオーバー
接続プーリングと透過的アプリケーション・フェイルオーバー
接続の共有
スレッド・セーフティの概要
スレッド・セーフティの実装
シリアライズ
オペレーティング・システムの考慮事項
アプリケーションによるデータ・バッファの管理
setDataBuffer()メソッド
executeArrayUpdate()メソッド
next()メソッドを使用した配列フェッチ
行変更の反復
ステートレスな接続プールのランタイム・ロード・バランシング
APIのサポート
障害診断
ADRベースの位置
ADRCIの使用
ADR作成の制御および障害診断の無効化
クライアントの結果キャッシュ
クライアント側のデプロイ・パラメータと自動チューニング
13
OCCI Application Program Interface
OCCIのクラスとメソッド
OCCIクラスの使用
OCCIでのWindows NTおよびz/OSのサポート
OCCIの共通定数
Agentクラス
Agent()
getAddress()
getName()
getProtocol()
isNull()
operator=()
setAddress()
setName()
setNull()
setProtocol()
AnyDataクラス
AnyData
getAsBDouble()
getAsBfile()
getAsBFloat()
getAsBytes()
getAsDate()
getAsIntervalDS()
getAsIntervalYM()
getAsNumber()
getAsObject()
getAsRef()
getAsString()
getAsTimestamp()
getType()
isNull()
setFromBDouble()
setFromBfile()
setFromBFloat()
setFromBytes()
setFromDate()
setFromIntervalDS()
setFromIntervalYM()
setFromNumber()
setFromObject()
setFromRef()
setFromString()
setFromTimestamp()
setNull()
BatchSQLExceptionクラス
getException()
getFailedRowCount()
getRowNum()
Bfileクラス
Bfile()
close()
closeStream()
fileExists()
getDirAlias()
getFileName()
getStream()
getUStringDirAlias()
getUStringFileName()
isInitialized()
isNull()
isOpen()
length()
open()
operator=()
operator==()
operator!=()
read()
setName()
setNull()
Blobクラス
Blob()
append()
close()
closeStream()
copy()
getChunkSize()
getContentType()
getOptions()
getStream()
isInitialized()
isNull()
isOpen()
length()
open()
operator=()
operator==()
operator!=()
read()
setContentType()
setEmpty()
setNull()
setOptions()
trim()
write()
writeChunk()
Bytesクラス
Bytes()
byteAt()
getBytes()
isNull()
length()
operator=()
setNull()
Clobクラス
Clob()
append()
close()
closeStream()
copy()
getCharSetForm()
getCharSetId()
getCharSetIdUString()
getChunkSize()
getContentType()
getOptions()
getStream()
isInitialized()
isNull()
isOpen()
length()
open()
operator=()
operator==()
operator!=()
read()
setCharSetId()
setCharSetIdUString()
setCharSetForm()
setContentType()
setEmpty()
setNull()
setOptions()
trim()
write()
writeChunk()
Connectionクラス
changePassword()
commit()
createStatement()
flushCache()
getClientCharSet()
getClientCharSetUString()
getClientNCHARCharSet()
getClientNCHARCharSetUString()
getClientVersion()
getLTXID()
getMetaData()
getOCIServer()
getOCIServiceContext()
getOCISession()
getServerVersion()
getServerVersionUString()
getStmtCacheSize()
getTag()
isCached()
pinVectorOfRefs()
postToSubscriptions()
readVectorOfBfiles()
readVectorOfBlobs()
readVectorOfClobs()
registerSubscriptions()
rollback()
setStmtCacheSize()
setTAFNotify()
terminateStatement()
unregisterSubscription()
writeVectorOfBlobs()
writeVectorOfClobs()
ConnectionPoolクラス
createConnection()
createProxyConnection()
getBusyConnections()
getIncrConnections()
getMaxConnections()
getMinConnections()
getOpenConnections()
getPoolName()
getStmtCacheSize()
getTimeOut()
setErrorOnBusy()
setPoolSize()
setStmtCacheSize()
setTimeOut()
terminateConnection()
Consumerクラス
Consumer()
getConsumerName()
getCorrelationId()
getDequeueMode()
getMessageIdToDequeue()
getPositionOfMessage()
getQueueName()
getTransformation()
getVisibility()
getWaitTime()
isNull()
operator=()
receive()
setAgent()
setConsumerName()
setCorrelationId()
setDequeueMode()
setMessageIdToDequeue()
setNull()
setPositionOfMessage()
setQueueName()
setTransformation()
setVisibility()
setWaitTime()
Dateクラス
Date()
addDays()
addMonths()
daysBetween()
fromBytes()
fromText()
getDate()
getSystemDate()
isNull()
lastDay()
nextDay()
operator=()
operator==()
operator!=()
operator>()
operator>=()
operator<()
operator<=()
setDate()
setNull()
toBytes()
toText()
toZone()
Environmentクラス
createConnection()
createConnectionPool()
createEnvironment()
createStatelessConnectionPool()
enableSubscription()
disableSubscription()
getCacheMaxSize()
getCacheOptSize()
getCacheSortedFlush()
getCurrentHeapSize()
getLDAPAdminContext()
getLDAPAuthentication()
getLDAPHost()
getLDAPPort()
getMap()
getNLSLanguage()
getNLSTerritory()
getOCIEnvironment()
getXAConnection()
getXAEnvironment()
releaseXAConnection()
releaseXAEnvironment()
setCacheMaxSize()
setCacheOptSize()
setCacheSortedFlush()
setLDAPAdminContext()
setLDAPAuthentication()
setLDAPHostAndPort()
setLDAPLoginNameAndPassword()
setNLSLanguage()
setNLSTerritory()
terminateConnection()
terminateConnectionPool()
terminateEnvironment()
terminateStatelessConnectionPool()
IntervalDSクラス
IntervalDS()
fromText()
fromUText()
getDay()
getFracSec()
getHour()
getMinute()
getSecond()
isNull()
operator*()
operator*=()
operator=()
operator==()
operator!=()
operator/()
operator/=()
operator>()
operator>=()
operator<()
operator<=()
operator-()
演算子
-=
()
operator+()
operator+=()
set()
setNull()
toText()
toUText()
IntervalYMクラス
IntervalYM()
fromText()
fromUText()
getMonth()
getYear()
isNull()
operator*()
operator*=()
operator=()
operator==()
operator!=()
operator/()
operator/=()
operator>()
operator>=()
operator<()
operator<=()
operator-()
演算子
-=
()
operator+()
operator+=()
set()
setNull()
toText()
toUText()
Listenerクラス
Listener()
getAgentList()
getTimeOutForListen()
listen()
setAgentList()
setTimeOutForListen()
Mapクラス
put()
Messageクラス
Message()
getAnyData()
getAttemptsToDequeue()
getBytes()
getCorrelationId()
getDelay()
getExceptionQueueName()
getExpiration()
getMessageEnqueuedTime()
getMessageState()
getObject()
getOriginalMessageId()
getPayloadType()
getPriority()
getSenderId()
isNull()
operator=()
setAnyData()
setBytes()
setCorrelationId()
setDelay()
setExceptionQueueName()
setExpiration()
setNull()
setObject()
setOriginalMessageId()
setPriority()
setRecipientList()
setSenderId()
MetaDataクラス
MetaData()
getAttributeCount()
getAttributeId()
getAttributeType()
getBoolean()
getInt()
getMetaData()
getNumber()
getRef()
getString()
getTimeStamp()
getUInt()
getUString()
getVector()
operator=()
NotifyResultクラス
getConsumerName()
getMessage()
getMessageId()
getPayload()
getQueueName()
Numberクラス
Number()
abs()
arcCos()
arcSin()
arcTan()
arcTan2()
ceil()
cos()
exp()
floor()
fromBytes()
fromText()
hypCos()
hypSin()
hypTan()
intPower()
isNull()
ln()
log()
operator++()
演算子
--
()
operator*()
operator/()
operator%()
operator+()
operator-()
operator-()
operator<()
operator<=()
operator>()
operator>=()
operator==()
operator!=()
operator=()
operator*=()
operator/=()
operator%=()
operator+=()
演算子
-=
()
operator char()
operator signed char()
operator double()
operator float()
operator int()
operator long()
operator long double()
operator short()
operator unsigned char()
operator unsigned int()
operator unsigned long()
operator unsigned short()
power()
prec()
round()
setNull()
shift()
sign()
sin()
squareroot()
tan()
toBytes()
toText()
trunc()
PObjectクラス
PObject()
flush()
getConnection()
getRef()
getSQLTypeName()
isLocked()
isNull()
lock()
markDelete()
markModified()
operator=()
operator delete()
operator new()
pin()
setNull()
unmark()
unpin()
Producerクラス
Producer()
getQueueName()
getRelativeMessageId()
getSequenceDeviation()
getTransformation()
getVisibility()
isNull()
operator=()
send()
setNull()
setQueueName()
setRelativeMessageId()
setSequenceDeviation()
setTransformation()
setVisibility()
Refクラス
Ref()
clear()
getConnection()
isClear()
isNull()
markDelete()
operator->()
operator*()
operator==()
operator!=()
operator=()
ptr()
setLock()
setNull()
setPrefetch()
unmarkDelete()
RefAnyクラス
RefAny()
clear()
getConnection()
isNull()
markDelete()
operator=()
operator==()
operator!=()
unmarkDelete()
ResultSetクラス
cancel()
closeStream()
getBDouble()
getBfile()
getBFloat()
getBlob()
getBytes()
getCharSet()
getCharSetUString()
getClob()
getColumnListMetaData()
getCurrentStreamColumn()
getCurrentStreamRow()
getCursor()
getDatabaseNCHARParam()
getDate()
getDouble()
getFloat()
getInt()
getIntervalDS()
getIntervalYM()
getMaxColumnSize()
getNumArrayRows()
getNumber()
getObject()
getRef()
getRowid()
getRowPosition()
getStatement()
getStream()
getString()
getTimestamp()
getUInt()
getUString()
getVector()
getVectorOfRefs()
isNull()
isTruncated()
next()
preTruncationLength()
setBinaryStreamMode()
setCharacterStreamMode()
setCharSet()
setCharSetUString()
setDatabaseNCHARParam()
setDataBuffer()
setErrorOnNull()
setErrorOnTruncate()
setPrefetchMemorySize()
setPrefetchRowCount()
setMaxColumnSize()
status()
SQLExceptionクラス
SQLException()
getErrorCode()
getMessage()
getNLSMessage()
getNLSUStringMessage()
getUStringMessage()
getXAErrorCode()
isRecoverable()
setErrorCtx()
what()
StatelessConnectionPoolクラス
getAnyTaggedConnection()
getAnyTaggedProxyConnection()
getBusyConnections()
getBusyOption()
getConnection()
getIncrConnections()
getMaxConnections()
getMinConnections()
getOpenConnections()
getPoolName()
getProxyConnection()
getStmtCacheSize()
getTimeOut()
releaseConnection()
setBusyOption()
setPoolSize()
setTimeOut()
setStmtCacheSize()
terminateConnection()
Statementクラス
addIteration()
closeResultSet()
closeStream()
disableCaching()
execute()
executeArrayUpdate()
executeQuery()
executeUpdate()
getAutoCommit()
getBatchErrorMode()
getBDouble()
getBfile()
getBFloat()
getBlob()
getBytes()
getCharSet()
getCharSetUString()
getClob()
getConnection()
getCurrentIteration()
getCurrentStreamIteration()
getCurrentStreamParam()
getCursor()
getDatabaseNCHARParam()
getDate()
getDMLRowCounts()
getDouble()
getFloat()
getInt()
getIntervalDS()
getIntervalYM()
getMaxIterations()
getMaxParamSize()
getNumber()
getObject()
getOCIStatement()
getRef()
getResultSet()
getRowCountsOption()
getRowid()
getSQL()
getSQLUString()
getStream()
getString()
getTimestamp()
getUb8RowCount()
getUInt()
getUpdateCount()
getUString()
getVector()
getVectorOfRefs()
isNull()
isTruncated()
preTruncationLength()
registerOutParam()
setAutoCommit()
setBatchErrorMode()
setBDouble()
setBfile()
setBFloat()
setBinaryStreamMode()
setBlob()
setBytes()
setCharacterStreamMode()
setCharSet()
setCharSetUString()
setClob()
setDate()
setDatabaseNCHARParam()
setDataBuffer()
setDataBufferArray()
setDouble()
setErrorOnNull()
setErrorOnTruncate()
setFloat()
setInt()
setIntervalDS()
setIntervalYM()
setMaxIterations()
setMaxParamSize()
setNull()
setNumber()
setObject()
setPrefetchMemorySize()
setPrefetchRowCount()
setRef()
setRowCountsOption()
setRowid()
setSQL()
setSQLUString()
setString()
setTimestamp()
setUInt()
setUString()
setVector()
setVectorOfRefs()
status()
Streamクラス
readBuffer()
readLastBuffer()
writeBuffer()
writeLastBuffer()
status()
Subscriptionクラス
Subscription()
getCallbackContext()
getDatabaseServersCount()
getDatabaseServerNames()
getNotifyCallback()
getPayload()
getSubscriptionName()
getSubscriptionNamespace()
getRecipientName()
getPresentation()
getProtocol()
isNull()
operator=()
setCallbackContext()
setDatabaseServerNames()
setNotifyCallback()
setNull()
setPayload()
setPresentation()
setProtocol()
setSubscriptionName()
setSubscriptionNamespace()
setRecipientName()
Timestampクラス
Timestamp()
fromText()
getDate()
getTime()
getTimeZoneOffset()
intervalAdd()
intervalSub()
isNull()
operator=()
operator==()
operator!=()
operator>()
operator>=()
operator<()
operator<=()
setDate()
setNull()
setTime()
setTimeZoneOffset()
subDS()
subYM()
toText()
索引