目的
ストアード・プロシージャー dxxShredXML() は、 dxxGenXML() に対応するストアード・プロシージャーです。 dxxShredXML() を実行するには、DAD ファイルで指定されたすべての表が存在しなければならず、 DAD で指定されたすべての列およびデータ・タイプが既存の表と適合していなければなりません。 ストアード・プロシージャー dxxShredXML() では、 結合する表の間で基本キーと外部キーの関連は必要ありません (この関連は、 コレクションの使用可能化プロセス中に XML エクステンダーが作成するものです)。 ただし、root element_node の RDB_node 内で指定される結合条件の列が、 すでに表に存在していなければなりません。
dxxShredXML(CLOB(100K) DAD, /* input */ CLOB(1M) xmlobj, /* input */ long returnCode, /* output */ varchar(1024) returnMsg) /* output */
パラメーター
パラメーター | 説明 | IN/OUT パラメーター |
---|---|---|
DAD | DAD ファイルを含む CLOB | IN |
xmlobj | XMLCLOB タイプの XML 文書オブジェクト | IN |
returnCode | ストアード・プロシージャーからの戻りコード | OUT |
returnMsg | エラー発生時に戻されるメッセージ・テキスト | OUT |
例
以下は dxxShredXML() の呼び出しの例です。
#include "dxx.h" #include "dxxrc.h" EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; SQL TYPE is CLOB dad; /* DAD*/ SQL TYPE is CLOB_FILE dadFile; /* DAD file*/ SQL TYPE is CLOB xmlDoc; /* input XML document */ SQL TYPE is CLOB_FILE xmlFile; /* input XMLfile */ long returnCode; /* error code */ char returnMsg[1024]; /* error message text */ short dad_ind; short xmlDoc_ind; short returnCode_ind; short returnMsg_ind; EXEC SQL END DECLARE SECTION; /* initialize host variable and indicators */ strcpy(dadFile.name,"c:\dxx\samples\dad\getstart_xcollection.dad"); dadFile.name_length=strlen("c:\dxx\samples\dad\getstart_xcollection.dad"); dadFile.file_option=SQL_FILE_READ; strcpy(xmlFile.name,"c:\dxx\samples\cmd\getstart.xml"); xmlFile.name_length=strlen("c:\dxx\samples\cmd\getstart.xml"); xmlFile.file_option=SQL_FILE_READ; SQL EXEC VALUES (:dadFile) INTO :dad; SQL EXEC VALUES (:xmlFile) INTO :xmlDoc; returnCode = 0; returnMsg[0] = '\0'; dad_ind = 0; xmlDoc_ind = 0; returnCode_ind = -1; returnMsg_ind = -1; /* Call the store procedure */ EXEC SQL CALL db2xml!dxxShredXML(:dad:dad_ind; :xmlDoc:xmlDoc_ind, :returnCode:returnCode_ind,:returnMsg:returnMsg_ind);