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ツリーの形式である場合、この関数は線形表現に対応するバイトを書き込みます。
- この関数では、サービス・コンテキスト・ハンドルに対するコールがシリアライズされます