在Mule 4中将XML写入Oracle表时,如何强制执行编码格式?
当我将XML写入Oracle表(列类型为XMLTYPE)时,它的写入没有显示任何编码类型。这是一个通过Java实现的当前流程。我们正在将此过程迁移到Mule。在Mule中,xml正在写入同一个表中,但在写入之后,我看到了该xml中的编码格式。不知道它是怎么来的,它不是真正的xml 使用Java插入时表中的XML在Mule 4中将XML写入Oracle表时,如何强制执行编码格式?,oracle,dataweave,mule4,xmltype,Oracle,Dataweave,Mule4,Xmltype,当我将XML写入Oracle表(列类型为XMLTYPE)时,它的写入没有显示任何编码类型。这是一个通过Java实现的当前流程。我们正在将此过程迁移到Mule。在Mule中,xml正在写入同一个表中,但在写入之后,我看到了该xml中的编码格式。不知道它是怎么来的,它不是真正的xml 使用Java插入时表中的XML <?xml version="1.0"?> 这是我的插入语句 insert into xmlpkg.REQ_RESP (ID, REQUEST_XML)
<?xml version="1.0"?>
这是我的插入语句
insert into xmlpkg.REQ_RESP (ID, REQUEST_XML) values (xmlpkg.SEQ_DV.nextval,
:REQUEST_XML )
我在我的输入参数中给出了以下内容
{
'REQUEST_XML' : write(payload, 'application/xml')
}
我的有效负载是一个xml,但它将以文本形式出现,我无法更改它
<DRIVERequest Version="1.00">
<Authentication PortalID="*****" Password="*******" Username="*******"/>
</DRIVERequest>
在输入参数中,我认为如下所示
{
'REQUEST_XML': payload.requestXML
}
在日志中,我看到的是UTF-8,但在插入操作之后,它显示为encoding=“US-ASCII”似乎不是Mule,而是Oracle JDBC驱动程序在某个地方发现了错误的编码 可能的解决办法:
看起来不是Mule,而是oraclejdbc驱动程序在某处发现了错误的编码 可能的解决办法:
有效载荷是多少?请共享实际的数据库连接器操作并完成DataWeave转换。使用更多信息更新了问题。请在数据库操作之前执行转换并将其分配给变量,以便您可以在此处记录并共享结果。更新了信息。同样是插入xml,但为什么编码会消失?在插入操作后,如何检查
“它显示为encoding=“US-ASCII”“
?有效载荷是多少?请共享实际的数据库连接器操作并完成DataWeave转换。使用更多信息更新了问题。请在数据库操作之前执行转换并将其分配给变量,以便您可以在此处记录并共享结果。更新了信息。同样是插入xml,但为什么编码会消失?在插入操作后,如何检查“它显示为encoding=“US-ASCII”“
?@Vinoy成功了吗?没有,尝试更新最新版本的JDBC驱动程序。显式设置NLS_LANG。但是什么也没用。仍然在研究使它按照这个链接工作@Vinoy成功了吗?没有,尝试更新最新版本的JDBC驱动程序。显式设置NLS_LANG。但是什么也没用。仍然在研究使它按照这个链接工作。
<DRIVERequest Version="1.00">
<Authentication PortalID="*****" Password="*******" Username="*******"/>
</DRIVERequest>
Before DB operation : "<?xml version='1.0' encoding='UTF-8'?>\n<DRIVERequest
Version=\"1.00\">\n <Authentication PortalID=\"*****\" Password=\"*******\"
Username=\"*******\"/>\n</DRIVERequest>"
%dw 2.0
output application/json
---
{
requestXML : write(payload, 'application/xml')
}
{
'REQUEST_XML': payload.requestXML
}