我有一些從某些表生成XML的代碼。我查詢的表格是從XSD文件生成的,該文件描述了我應該生成的XML。問題是表和字段的名稱遵循與架構中不同的命名約定 - 例如,架構中名爲「personID」的元素在數據庫表中將爲「PRSN_ID」。爲了生成輸出,我的代碼如下所示:在XML輸出中重命名標記
Select xmlelement("person",
xmlelement("personID",PRSN_ID),
xmlelement("personName",PRSN_NAM),
...
正如你所想象的,這開始變得單調乏味。我正在尋找更好的解決方案。我知道我可以使用xmlforest爲標籤賦予與選定列相同的名稱,現在我需要一種翻譯方式。例如,如果我產生:
/*the full long list of columns names can be generated so it's an easy copy-paste:*/
select xmlelement("PRSN", xmlforest(PRSN_ID,PRSN_NAM,...
/*produces this:*/
<PRSN>
<PRSN_ID>1<PRSN_ID/>
<PRSN_NAM>BOB<PRSN_NAM/>
...
我需要把它翻譯成這樣:
<person>
<personID>1</personID>
<personName>BOB</personName>
...
我怎麼會去甲骨文的PL/SQL做這種翻譯的?我確實有一個生成的映射文件,告訴我「PRSN_ID」應該轉換爲「personID」,但我不確定是否繼續此操作的最佳方式。
Duh ...我怎麼錯過了? :P是的,我最終可能會這樣做(除非DBA反對爲這些表創建> 90個視圖 - 儘管我可以通過腳本來做到這一點)。感謝你的想法! – FrustratedWithFormsDesigner 2009-12-10 22:08:49
這是我的首選解決方案,但是我無法在數據庫上創建視圖,所以現在我使用Excel宏生成難看的選擇語句,直到DBA創建視圖。 – FrustratedWithFormsDesigner 2009-12-14 20:19:14