plsql - 错误 ORA-00902:在 oracle 数据库中使用 XMLSERIALIZE 的数据类型无效
问题描述
我正在尝试缩进一个 xml。现在我可以在一行中生成它,但我发现了 ORACLE XMLSERIALE。我做了一些测试,它工作正常,但是这个函数改变了编码 windows-1252 第一行的编码类型。所以现在我试图将编码语法设置为 xmlserialize 函数,但是 sql 开发人员编译器给了我错误 ORA-00902: invalid datatype。
从关系数据生成 XML 数据 - 8.2.7 XMLSERIALIZE SQL/XML 函数 关于 ENCODING: ENCODING 子句指定序列化为 BLOB 实例的 XML 数据的字符编码。xml_encoding_spec 是一个 XML 编码声明(encoding="...")。如果数据类型为 BLOB 并且您指定了 ENCODING 子句,则输出按指定编码,并将 xml_encoding_spec 添加到序言以指示 BLOB 编码。如果使用 BLOB 以外的数据类型指定 ENCODING 子句,则会引发错误。对于 UTF-16 字符,xml_encoding_spec 必须是以下之一:
encoding=UTF-16BE – 大端 UTF-16 编码
encoding=UTF-16LE – Little-endian UTF-16 编码
这是我的代码:
begin
SELECT XMLSERIALIZE(Document XMLTYPE(doc_xml) AS CLOB ENCODING="UTF-8" INDENT SIZE = 4) into doc_xml FROM dual;
exception
when others then
DBMS_OUTPUT.PUT_LINE(SQLERRM);
return;
end;
doc_xml 是一个 clob。我试过不编码并且函数工作正常,而不是编码我得到错误ORA-902。
任何人都可以给出正确语法的想法吗?
测试我的问题的最小示例
SELECT XMLSERIALIZE(Document XMLTYPE('<?xml version="1.0" encoding="UTF-8" standalone="yes"?><p:FatturaElettronica xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" versione="FPR12"><FatturaElettronicaBody><DatiGenerali><DatiGeneraliDocumento><TipoDocumento>TD17</TipoDocumento><Divisa>EUR</Divisa><Data>2021-08-04</Data><Numero>200025</Numero><ImportoTotaleDocumento>1000.00</ImportoTotaleDocumento></DatiGeneraliDocumento></DatiGenerali><DatiBeniServizi><DettaglioLinee><NumeroLinea>1</NumeroLinea><Descrizione>REVERSE CHARGE</Descrizione><PrezzoUnitario>1000.000000</PrezzoUnitario><PrezzoTotale>1000.00</PrezzoTotale><AliquotaIVA>22.00</AliquotaIVA></DettaglioLinee><DatiRiepilogo><AliquotaIVA>22.00</AliquotaIVA><ImponibileImporto>1000.00</ImponibileImporto><Imposta>220.00</Imposta><EsigibilitaIVA>I</EsigibilitaIVA></DatiRiepilogo></DatiBeniServizi></FatturaElettronicaBody></p:FatturaElettronica>') AS CLOB INDENT SIZE = 4)
FROM dual;
解决方案
推荐阅读
- docker - Linux Docker 容器中与 CosmosDb 模拟器的 HTTPS 连接问题
- outlook - 如何从 Outlook 添加对话框将文件作为链接附加到 Outlook 邮件中?
- javascript - 如何将固定元素的颜色调整为其背景元素颜色?
- python - 分组时显示熊猫数据框中的所有日期;项目属于同一日期
- javascript - 使用多个分隔符捕获组
- wpf - WPF 使用任务应用模板
- ios - UICollectionViewCell 中的 UILabel 为 nil
- python - 用函数和类创建一个 python 2 玩家游戏
- ruby-on-rails - ruby 中 JSON.parse 的轻松访问助手?
- python - 将表格从 Word 提取到 Excel - 如何保持表格分开?