36 OCI Json記述子の関数
この章では、OCIJson記述子の関数について説明します。
36.1 JSON記述子に書き込むための関数
この章で説明する、JSON記述子に書き込むための関数を示します。
関数 | 用途 |
---|---|
OCIJsonDomDocSet |
JSON DOMドキュメント・コンテナをディープ・コピーし、記述子に新しいJSON DOMドキュメントを設定します。 |
OCIJsonTextBufferParse |
記述子の固定サイズのJSONテキスト・バッファを解析し、モードによって指定された形式でバイナリ・イメージをマニフェストします。 |
OCIJsonTextStreamParse |
記述子の固定サイズのJSON読取りOrastreamを解析し、モードによって指定された形式でバイナリ・イメージをマニフェストします。 |
OCIJsonBinaryBufferLoad |
バッファから記述子にバイナリ・イメージ(エンコードされたJSON)をロードします。 |
OCIJsonBinaryStreamLoad |
ストリームから記述子にバイナリ・イメージ(エンコードされたJSON)をロードします。 |
OCIJsonClone |
記述子を複製します。あるイメージ・フォームから別のイメージ・フォームへのJSON記述子のディープ・コピーに使用できます。 |
36.1.1 OCIJsonDomDocSet ()
JSON DOMドキュメント・コンテナをディープ・コピーし、記述子に新しいJSON DOMドキュメントを設定します。
用途
JSON DOMドキュメント・コンテナをディープ・コピーし、記述子に新しいJSON DOMドキュメントを設定します。
構文
sword OCIJsonDomDocSet (
void *hndlp,
OCIJson *jsond,
JsonDomDoc *jDomDoc,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
hndlp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドルまたは動作中のOCI環境ハンドルです。 |
jsond | IN/OUT |
割り当てられているOCI JSON記述子。 |
jDomDoc | OUT | JSON DOMドキュメント・コンテナ。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
- ドキュメントが正常に設定された場合は、
OCI_SUCCESS
です。 - 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- ソースのJSON DOMドキュメントのプロパティは、記述子で保持されます。入力として指定されたDOMドキュメントのポインタを解放するのはユーザーの責任です。
- 後続の読取り関数は、書込み操作がエラーなしで成功した場合にのみ、この記述子に対してコールできます。操作が失敗した場合、記述子は前の状態にリストアされません。
- 指定したハンドルがOCIサービス・コンテキスト・ハンドルである場合、この関数はそのハンドルのコールをシリアライズします。
36.1.2 OCIJsonTextBufferParse ()
固定サイズのJSONテキスト・バッファを解析し、記述子に書き込みます。
用途
固定サイズのJSONテキスト・バッファを解析して、記述子に書き込みます。
構文
sword OCIJsonTextBufferParse (
void *hndlp,
OCIJson *jsond,
void *bufp,
oraub8 buf_sz,
ub4 validation,
ub2 encoding,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
hndlp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドルまたは動作中のOCI環境ハンドルです。 |
bufp | IN |
入力バッファへのポインタです。 |
buf_sz | IN | 入力バッファのサイズ(バイト単位)。 |
検証 | IN |
パーサーの検証モード。詳細は、『XML C APIリファレンス』ガイドの「JSON検証定数」を参照してください。 |
encoding | IN |
JSONのテキストのキャラクタ・セットのエンコーディング。詳細は、『XML C APIリファレンス』ガイドの「JSONエンコーディング定数」を参照してください。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: バッファに有効なJSONコンテンツが含まれていた場合。OCI_SUCCESS_WITH_INFO
: 入力のテキストJSONがNULL
の場合。- 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- 書込み関数が記述子に対してコールされるたびに、既存の移入済のDOMコンテナがすべて自動的に解放されます。
- 後続の読取り関数は、この書込み関数がエラーなしで成功した場合にのみ、この記述子に対してコールできます。
- 指定したハンドルがOCIサービス・コンテキスト・ハンドルである場合、この関数はそのハンドルのコールをシリアライズします。
関連項目:
36.1.3 OCIJsonTextStreamParse ()
読取りOrastreamからのテキストJSONを解析し、記述子に書き込みます。
用途
読取りOrastreamからのテキストJSONを解析して、記述子に書き込みます。
構文
sword OCIJsonTextStreamParse (
void *hndlp,
OCIJson *jsond,
orastream *r_stream,
ub4 validation,
ub2 encoding,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
hndlp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドルまたは動作中のOCI環境ハンドルです。 |
jsond | IN/OUT |
割り当てられているOCI JSON記述子。 |
r_stream | IN |
Orastream (読取りストリーム)の入力へのポインタです。詳細は、『XML C APIリファレンス』ガイドの「C API用のorastreamパッケージ」を参照してください。 |
検証 | IN |
パーサーの検証モード。詳細は、『XML C APIリファレンス』ガイドの「JSON検証定数」を参照してください。 |
encoding | IN |
JSONのテキストのキャラクタ・セットのエンコーディング。詳細は、『XML C APIリファレンス』ガイドの「JSONエンコーディング定数」を参照してください。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: 読取りストリームに有効なJSONが含まれている場合。OCI_SUCCESS_WITH_INFO
: 入力のテキストJSONがNULL
の場合。- 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- 解析関数が記述子に対してコールされるたびに、既存の移入済のDOMツリーがすべて自動的に解放されます。
- 後続の読取り関数は、この書込み関数がエラーなしで成功した場合にのみ、この記述子に対してコールできます。
- 入力の読取りストリームが開いていない場合は、自動的に開かれます。読取りストリームを閉じるのはユーザーの責任です。
- 指定したハンドルがOCIサービス・コンテキスト・ハンドルである場合、この関数はそのハンドルのコールをシリアライズします。
36.1.4 OCIJsonBinaryBufferLoad ()
バッファから記述子にバイナリ・イメージ(エンコードされたJSON)をロードします。
用途
バッファから記述子にバイナリ・イメージ(エンコードされたJSON)をロードします。
sword OCIJsonBinaryBufferLoad (
void *hndlp,
OCIJson *jsond,
ub1 *bufp,
oraub8 buf_sz,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
hndlp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドルまたは動作中のOCI環境ハンドルです。 |
jsond | IN/OUT |
割り当てられているOCI JSON記述子。 |
bufp | IN |
入力バッファへのポインタです。 |
buf_sz | IN |
入力バッファのサイズ(バイト単位)。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: バッファに有効なJSONコンテンツが含まれていた場合。OCI_SUCCESS_WITH_INFO
: 入力のテキストJSONがNULL
の場合。- 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- 書込み関数が記述子に対してコールされるたびに、既存の移入済のDOMコンテナがすべて自動的に解放されます。
- 後続の読取り関数は、この書込み関数がエラーなしで成功した場合にのみ、この記述子に対してコールできます。
- 入力の読取りストリームが開いていない場合は、自動的に開かれます。読取りストリームを閉じるのはユーザーの責任です。
- 指定したハンドルがOCIサービス・コンテキスト・ハンドルである場合、この関数はそのハンドルのコールをシリアライズします。
36.1.5 OCIJsonBinaryStreamLoad ()
ストリームから記述子にバイナリ・イメージ(エンコードされたJSON)をロードします。
用途
ストリームから記述子にバイナリ・イメージ(エンコードされたJSON)をロードします。
構文
sword OCIJsonBinaryStreamLoad (
void *hndlp,
OCIJson *jsond,
orastream *r_stream,
oraub8 buf_sz,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
hndlp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドルまたは動作中のOCI環境ハンドルです。 |
jsond | IN/OUT |
割り当てられているOCI JSON記述子。 |
r_stream | IN |
Orastream (読取りストリーム)の入力へのポインタです。詳細は、『XML C APIリファレンス』ガイドの「C API用のorastreamパッケージ」を参照してください。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: 読取りストリームに有効なJSONが含まれている場合。OCI_SUCCESS_WITH_INFO
: 入力のテキストJSONがNULL
の場合。-
実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- 書込み関数が記述子に対してコールされるたびに、既存の移入済のDOMコンテナがすべて自動的に解放されます。
- 後続の読取り関数は、この書込み関数がエラーなしで成功した場合にのみ、この記述子に対してコールできます。
- 入力の読取りストリームが開いていない場合は、自動的に開かれます。読取りストリームを閉じるのはユーザーの責任です。
- 指定したハンドルがOCIサービス・コンテキスト・ハンドルである場合、この関数はそのハンドルのコールをシリアライズします。
36.1.6 OCIJsonClone ()
記述子および関連するJSONコンテンツを複製します。
用途
記述子および関連するJSONコンテンツを複製します。
sword OCIJsonClone (
OCISvcCtx *svchp,
OCIJson *src_jsond,
OCIJson *dest_jsond,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
svchp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドル。 |
src_jsond | IN |
有効なソースJSONドキュメント記述子。 |
dest_jsond | IN/OUT |
複製先ロケータ。割り当てられてソースからデータがコピーされます。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: ドキュメントが正常に複製された場合。- 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- ソースからコピー先へのJSON記述子のディープ・コピーに使用して、イメージ・フォームを別のイメージ・フォームに変更できます。
- 書込み関数が記述子に対してコールされるたびに、既存の移入済のDOMコンテナがすべて自動的に解放されます。
- 後続の読取り関数は、この書込み関数がエラーなしで成功した場合にのみ、この記述子に対してコールできます。
- 入力の読取りストリームが開いていない場合は、自動的に開かれます。読取りストリームを閉じるのはユーザーの責任です。
- この関数では、指定されたサービス・コンテキスト・ハンドルに対するコールがシリアライズされます。
36.2 JSON記述子から読み取るための関数
JSON記述子から読み取るための関数をリストします。
関数 | 用途 |
---|---|
OCIJsonDomDocGet |
記述子からDOMドキュメント・コンテナを戻し、モードに指定された形式でバイナリ・イメージをマニフェストします。 |
OCIJsonToTextBuffer |
記述子のJSONコンテンツのテキスト文字列表現を戻します。テキスト文字列は、ユーザーのバッファに書き込まれます。 |
OCIJsonToTextStream |
記述子のJSONコンテンツのテキスト文字列表現を戻します。テキスト文字列は、ユーザーの書込みストリームに書き込まれます。 |
OCIJsonToBinaryBuffer |
JSONドキュメント記述子からユーザーのバッファに書き込まれたバイナリ・イメージのバイト数を戻します。 |
OCIJsonToBinaryStream |
JSONドキュメント記述子からユーザーの書込みストリームに書き込まれたバイナリ・イメージのバイト数を戻します。 |
OCIJsonBinaryLengthGet |
JSONのバイナリ表現のサイズ(バイト単位)を戻します。 |
36.2.1 OCIJsonDomDocGet ()
記述子に設定されている形式に似ているDOMドキュメント・コンテナを記述子から戻します。
用途
記述子に設定されている形式に似ているDOMドキュメント・コンテナを記述子から取得します。
sword OCIJsonDomDocGet (
OCISvcCtx *svchp,
OCIJson *jsond,
JsonDomDoc **jDomDoc,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
svchp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドル。 |
jsond | IN |
割り当てられているOCI JSON記述子。 |
jDomDoc | OUT | JSON記述子が指しているJSON DOMドキュメント・コンテナ。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: ドキュメントが正常に戻された場合。OCI_SUCCESS_WITH_INFO
:OCIJson
記述子が空の場合。- 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- デフォルトでは、この関数は以前に指定したモードでドキュメント・コンテナ(
JsonDomDoc *
)を戻します。以前に指定されたことがない場合、この関数は不変DOMを戻します。 - この関数から返されるJSON DOMコンテナは記述子にバインドされるため、ユーザーが明示的に解放しないでください。JSON記述子が解放されるときに自動的に解放されます。
- この関数では、指定されたサービス・コンテキスト・ハンドルに対するコールがシリアライズされます。
36.2.2 OCIJsonToTextBuffer ()
記述子のJSONコンテンツのテキスト文字列表現を戻します。テキスト文字列は、ユーザーのバッファに書き込まれます。
用途
記述子のJSONコンテンツのテキスト文字列表現を戻します。
sword OCIJsonToTextBuffer (
OCISvcCtx *svchp,
OCIJson *jsond,
oratext *bufp,
oraub8 *byte_amtp,
ub4 wflags,
ub2 encoding,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
svchp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドル。 |
jsond | IN | 割り当てられているOCI JSON記述子。 |
bufp | IN/OUT |
テキストJSONの読取り先バッファへのポインタです。 |
byte_amtp | IN/OUT |
|
wflags | IN |
出力テキストJSONのライター・フラグ。詳細は、『XML C APIリファレンス』ガイドの「JSON出力定数」を参照してください。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: テキスト文字列がストリームに正常に書き込まれた場合。
OCI_SUCCESS_WITH_INFO
: OCIJson記述子が空の場合。
実行中にエラーが発生した場合は、OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- 入力バッファがテキストJSONを収容するために十分な大きさではない場合は、エラーが戻されます。そのような場合、ユーザーはストリーミング・インタフェースを使用するか、より大きいバッファを指定できます。
- 戻されるテキストJSONは、AL32UTF8キャラクタ・セットです。
- この関数では、指定されたサービス・コンテキスト・ハンドルに対するコールがシリアライズされます。
関連項目:
JSON出力定数36.2.3 OCIJsonToTextStream ()
記述子のJSONコンテンツのテキスト文字列表現を戻します。テキスト文字列は、ユーザーの書込みストリームに書き込まれます。
用途
記述子のJSONコンテンツのテキスト文字列表現を戻します。
sword OCIJsonToTextStream (
OCISvcCtx *svchp,
OCIJson *jsond,
orastream *w_stream,
oraub8 *byte_amtp,
ub4 wflags,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
svchp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドル。 |
jsond | IN |
割り当てられているOCI JSON記述子。 |
w_stream | IN |
Orastream (書込みストリーム)の入力へのポインタです。詳細は、『XML C APIリファレンス』ガイドの「C API用のorastreamパッケージ」を参照してください。 |
byte_amtp | OUT |
ストリームに書き込まれるテキストJSONに対応する合計バイト数。 |
wflags | IN |
出力テキストJSONのライター・フラグ。詳細は、『XML C APIリファレンス』ガイドの「JSON出力定数」を参照してください。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: テキスト文字列がストリームに正常に書き込まれた場合。OCI_SUCCESS_WITH_INFO
:OCIJson
記述子が空の場合。- 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- 戻されるテキストJSONは、AL32UTF8キャラクタ・セットです。
- 入力の読取りストリームが開いていない場合は、自動的に開かれます。読取りストリームを閉じるのはユーザーの責任です。
- この関数では、指定されたサービス・コンテキスト・ハンドルに対するコールがシリアライズされます。
36.2.4 OCIJsonToBinaryBuffer ()
JSONドキュメント記述子からユーザーのバッファに書き込まれたバイナリ・イメージのバイト数を戻します。
用途
JSONドキュメント記述子からユーザーのバッファに書き込まれたバイナリ・イメージのバイト数を戻します。
構文
sword OCIJsonToBinaryBuffer (
OCISvcCtx *svchp,
OCIJson *jsond,
ub1 *bufp,
oraub8 *byte_amtp
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
svchp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドル。 |
jsond | IN |
有効なJSONドキュメント記述子。 |
bufp | IN/OUT |
テキストJSONの読取り先バッファへのポインタです。 |
byte_amtp | IN/OUT |
|
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: ドキュメント・イメージが正常に読み取られた場合。OCI_SUCCESS_WITH_INFO
: OCIJson記述子が空の場合。- 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- 入力サイズ・バッファがバイナリ・イメージのサイズを収容するために十分な大きさではない場合は、エラーが発生します。この場合、ユーザーはストリーミング・インタフェースを使用するか、
OCIJsonBinaryLengthGet ()
を使用して実際のイメージのサイズを取得します。 - JSON記述子に可変DOMが保持されている場合、この関数は線形バイナリ表現に対応するバイト数を戻します。
- この関数では、サービス・コンテキスト・ハンドルに対するコールがシリアライズされます。
36.2.5 OCIJsonToBinaryStream ()
JSONドキュメント記述子からユーザーの書込みストリームに書き込まれたバイナリ・イメージのバイト数を戻します。
用途
JSONドキュメント記述子からユーザーの書込みストリームに書き込まれたバイナリ・イメージのバイト数を取得します。
構文
sword OCIJsonToBinaryStream (
OCISvcCtx *svchp,
OCIJson *jsond,
orastream *w_stream,
oraub8 *byte_amtp,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
svchp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドル。 |
jsond | IN |
割り当てられているOCI JSON記述子。 |
w_stream | IN |
Orastream (書込みストリーム)の入力へのポインタです。詳細は、『XML C APIリファレンス』ガイドの「C API用のorastreamパッケージ」を参照してください。 |
byte_amtp | OUT | テキストJSONに対応する合計バイト数。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: テキスト文字列がストリームに正常に書き込まれた場合。-
OCI_SUCCESS_WITH_INFO
: OCIJson記述子が空の場合 - 実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- JSON記述子のバイナリ・イメージがDOMツリーの形式である場合、この関数は線形表現に対応するバイトを書き込みます。
- 入力の読取りストリームが開いていない場合は、自動的に開かれます。読取りストリームを閉じるのはユーザーの責任です。
- この関数では、サービス・コンテキスト・ハンドルに対するコールがシリアライズされます。
36.2.6 OCIJsonBinaryLengthGet ()
JSONのバイナリ表現のサイズ(バイト単位)を戻します。
用途
JSONのバイナリ表現のサイズ(バイト単位)を取得します。
構文
sword OCIJsonBinaryLengthGet (
OCISvcCtx *svchp,
OCIJson *jsond,
oraub8 *byte_amtp,
OCIError *errhp,
ub4 mode
);
パラメータ
パラメータ | モード | 説明 |
---|---|---|
svchp | IN |
割り当てられているOCIサービス・コンテキスト・ハンドル。 |
jsond | IN |
有効なJSONドキュメント記述子。 |
byte_amtp | OUT | JSONイメージのバイト数。 |
errhp | IN/OUT |
割り当てられているOCIエラー・ハンドルです。エラーがある場合は、 |
mode | IN |
実行のモードを指定します。
|
戻り値
OCI_SUCCESS
: ドキュメント・イメージの長さが正常に読み取られた場合。-
実行中にエラーが発生した場合は、
OCI_ERROR
です。OCIError
パラメータに必要なエラー情報が示されます。
使用方法
- JSON記述子のバイナリ・イメージがDOMツリーの形式である場合、この関数は線形表現に対応するバイトを書き込みます。
- この関数では、サービス・コンテキスト・ハンドルに対するコールがシリアライズされます