【发布时间】:2009-12-10 19:45:26
【问题描述】:
我有一些代码可以从一些表中生成 XML。我正在查询的表是从 XSD 文件生成的,该文件描述了我应该生成的 XML。问题是表和字段的名称遵循与架构中不同的命名约定 - 例如,架构中名为“personID”的元素在数据库表中将是“PRSN_ID”。为了生成输出,我的代码如下所示:
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>
...
我将如何在 Oracle PL/SQL 中进行这种翻译?我确实有一个生成的映射文件告诉我“PRSN_ID”应该被翻译成“personID”,我只是不确定最好的方法来继续这个。
【问题讨论】: