PL/SQL中是否有将文本转换/编码为XML兼容文本的方法?

PL/SQL中是否有将文本转换/编码为XML兼容文本的方法?,xml,oracle,plsql,Xml,Oracle,Plsql,我有一位同事需要将PL/SQL方法中的文本转换为符合XML的文本,因为他正在通过更新文本模板构建excel电子表格 PL/SQL中是否有将文本转换/编码为XML兼容文本的方法?较新版本的oracle内置了一个用于处理XML数据的方法。 例如,这是你的同事想做的事情吗 SELECT DBMS_XMLGEN.getXML('SELECT * FROM emp') FROM dual; hamischmcn选项简单明了,但它在oracle表单中不起作用,我尝试了很多次使用它,但什么都没有……您可以手

我有一位同事需要将PL/SQL方法中的文本转换为符合XML的文本,因为他正在通过更新文本模板构建excel电子表格


PL/SQL中是否有将文本转换/编码为XML兼容文本的方法?

较新版本的oracle内置了一个用于处理XML数据的方法。
例如,这是你的同事想做的事情吗

SELECT DBMS_XMLGEN.getXML('SELECT * FROM emp') FROM dual;

hamischmcn选项简单明了,但它在oracle表单中不起作用,我尝试了很多次使用它,但什么都没有……您可以手动生成xml,使用类似的方法

utl_file.put_line_nchar(文件id,'xml version=“1.0”encoding=“utf-8”)

utl_file.put_line_nchar(文件id为“开始”)

--用于定义标记的FOR循环

utl_file.put_line_nchar(文件id,/Start')


注意:编辑器不允许我将<>符号放在xml和标记标题中

关于Rulas关于Oracle表单的问题,有很多表单无法完成的事情(在不同版本中),需要使用数据库包

因此,编写一个数据库PL/SQL函数来执行dbms_xmlgen,并根据XML的大小返回varchar2或clob。然后可以从表单中调用该函数。当您将数据返回表单时,请使用text_io或webutil将XML文件推送到Excel


或者停留在数据库端,使用utl_文件将XML输出推送到一个目录,您可以从中获取它。

如果您只想转换XML字符,您需要执行以下操作

  outgoing_text := DBMS_XMLGEN.CONVERT(incoming_text)
其中
传出的\u文本
传入的\u文本
都是VARCHAR2或CLOB


您可以指定第二个参数,但它默认为
DBMS\u XMLGEN.ENTITY\u ENCODE
。。。它还可以通过将
DBMS\u XMLGEN.ENTITY\u decode
作为第二个参数来解码XML实体。

除了DBMS\u XMLGEN之外,还可以使用sql方法xmlelement,然后将值提取出来

select extract(xmlelement("mytest",my_variable),'mytest/text()') from dual;

xmlelement函数将使文本XML兼容,然后使用extract函数按原样提取文本。(注意:extractValue函数会将文本转换回不符合XML的版本。)。

谢谢,但我正在研究一种将文本编码的方法,即将字符转换为符合XML的字符。这非常有用,因为它会生成整个XML片段,不过,我正在寻找一种将文本转换为xml而不包含封闭标记的方法。感谢您将其与英镑符号分开,英镑符号可能是某个字符集的问题。请注意,这也会对CDATA元素中的字符进行编码。