TOOBJECT メンバープロシージャは、XMLType インスタンス内のXMLの内容をPL/SQLオブジェクトインスタンスにマッピングします。つまり、オブジェクト型の構造に従ってXMLをPL/SQLオブジェクトにデシリアライズします。DBMS_XMLDOM.GETXMLTYPE と組み合わせて使用できます。まずDOMを使用してXMLを構築または解析し、次に XMLType に変換し、最後にPL/SQLオブジェクトにマッピングします。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise版にのみ適用されます。OceanBaseデータベースCommunity版はMySQLモードのみを提供します。
説明
V4.4.2系では、このサブプログラムはOceanBaseデータベースV4.4.2 BP3から導入されました。
構文
MEMBER PROCEDURE toObject(
SELF IN XMLTYPE,
object OUT NOCOPY <object_type>);
パラメータの説明
パラメータ |
説明 |
|---|---|
| SELF | 現在の XMLType インスタンス。 |
| object | マッピング結果を受け取るユーザー定義オブジェクト型インスタンス(OUT)。 |
戻り値
戻り値はありません。結果は object に書き込まれます。
使用方法
objectのオブジェクト型の構造は、XMLの内容と一致している必要があります。型が一致しない場合やXMLが無効な場合は、実行時エラーとして処理されます。- 呼び出し前に、対象オブジェクト型が現在のスキーマで作成済みであることを確認してください。
例
以下の例では、オブジェクト型の構造に対応するXMLをPL/SQLオブジェクトインスタンスにマッピングします。SOME_OBJECT_TYPE を実際のオブジェクト型名に置き換えてください。
DECLARE
x XMLTYPE;
target_obj SOME_OBJECT_TYPE;
BEGIN
x := XMLTYPE('<SOME_OBJECT_TYPE><FIELD1>hello</FIELD1></SOME_OBJECT_TYPE>');
x.toObject(target_obj);
END;
/