使用 Oracle XML SQL Utility (XSU) 進行 XML 匯入匯出時,最關鍵的是正確設定 rowTag,使其對應 XML 中代表單筆記錄的標籤名稱。
<ROOT>
<RECORD>
<COLUMN1>aaaa</COLUMN1>
<COLUMN2>bbbb</COLUMN2>
</RECORD>
</ROOT>
對應資料表 aaa (aaa varchar2(20), bbb varchar2(20))。匯入時必須設定:
save.setRowTag("RECORD"); // 大小寫敏感!
save.insertXML(xmlDoc);
從資料表產生 XML 時,預設結構為:
<ROWSET>
<ROW num="1">
<COLUMN1>aaaa</COLUMN1>
<COLUMN2>bbbb</COLUMN2>
</ROW>
</ROWSET>
可自訂標籤名稱:
// 產生 XML 時
qry.setRowSetTag("TABLENAME");
qry.setRowTag("RECORDNAME");
// 產生:
// <TABLENAME><RECORDNAME num="1">...</RECORDNAME></TABLENAME>
// 匯入時對應設定
save.setRowTag("RECORDNAME");
save.insertXML(xmlDoc);
RECORDNAME 與 recordname 視為不同標籤,設定時必須完全一致。setRowSetTag、setRowTag 自訂結構,匯入時務必對應設定 setRowTag。網路上大多數範例錯誤在於未正確設定 rowTag,導致匯入時無法識別記錄邊界,產生「找不到行標籤」或資料遺失錯誤。