gpt4 book ai didi

sql - 从 oracle 数据库表中生成带有自定义 XML 标记的 XML 文件

转载 作者:数据小太阳 更新时间:2023-10-29 02:31:09 43 4
gpt4 key购买 nike

我正在使用 oracle 数据库 9ir2我需要将一些表格转换为带有自定义格式标签的 xml 文件。

例如:我想从 emp 表中的某些列生成 XML,然后生成一个名为“myxmlfile.xml”的文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<entity-engine-xml>
<myxmlfile
EMPNO="8401"
ENAME="JHON"
HIREDATE="1988-12-30"
SAL="5000"
DEPTNO="10"

/>
<myxmlfile
...
/>
<myxmlfile
...
/>
</entity-engine-xml>
  1. 如何生成带有上述标签的自定义 XML 文件,以及每次用户需要这样做时,换句话说,通过使用 pl/sql 的“每个用户请求”,如何使用 oracle XML 函数输出自定义的所需标签?。
  2. 如何将 xmltype 转换为 varchar2 ??? ... to_char() 函数无法将 XMLtype 转换为 char。
  3. 在客户端创建 XML 文件的最简单方法是什么?

注意:用户应用程序运行在 XP PC 上,由旧的 oracle 开发人员工具 forms6i 构建。

最佳答案

你用 XMLELEMENT 做这个等

select xmlelement("entity-engine-xml",
xmlagg(
xmlelement(
"myxmlfile",
xmlattributes(empno as "EMPNO",
ename as "ENAME",
to_char(hiredate, 'yyyy-mm-dd') as "HIREDATE",
sal as "SAL",
deptno as "DEPTNO"
)
)
)
).getclobval()
from emp;

.

how to convert xmltype to varchar2 ???

有一个getStringVal为此功能。即在我上面的示例中看到我使用了 getClobval。有一个 getstringval() 等价物。

编辑:假脱机:

set trims on feedback off heading off long 50000 linesize 32767 pagesize 0
col c format a32767
spool c:\temp\foo.xml
select xmlelement("entity-engine-xml",
xmlagg(
xmlelement(
"myxmlfile",
xmlattributes(empno as "EMPNO",
ename as "ENAME",
to_char(hiredate, 'yyyy-mm-dd') as "HIREDATE",
sal as "SAL",
deptno as "DEPTNO"
)
)
)
).transform(xmltype('<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>')) c
from emp;
spool off

关于sql - 从 oracle 数据库表中生成带有自定义 XML 标记的 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466485/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com