BLOB 到 XMLType XML 解析在 oracle 中失败
Posted
技术标签:
【中文标题】BLOB 到 XMLType XML 解析在 oracle 中失败【英文标题】:BLOB to XMLType XML parsing failed in oracle 【发布时间】:2019-09-02 02:03:41 【问题描述】:我无法在 oracle 数据库中将 BLOB 转换为 XMLType。 我试过这个:
select
XMLType( BLOB_COLUMN,
1 /* this is character set ID. 1 == USASCII | ISO-8859-2 char ID?*/
) as XML
from my_table;
我收到此错误消息:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00200: could not convert from encoding US-ASCII to ISO-8859-2
Error at line 1
ORA-06512: at "SYS.XMLTYPE", line 265
ORA-06512: at line 1
31011. 00000 - "XML parsing failed"
*Cause: XML parser returned an error while trying to parse the document.
*Action: Check if the document to be parsed is valid.
我的问题是,如何将此 BLOB (ISO-8859-2) 转换为 XMLType? ISO-8859-2的字符ID是什么?
谢谢。
【问题讨论】:
【参考方案1】:使用nls_charset_id获取ID:
select
XMLType( BLOB_COLUMN,
nls_charset_id('ISO-8859-2')
) as XML
from my_table;
NLS_CHARSET_ID 返回字符集名称字符串对应的字符集ID号。
【讨论】:
【参考方案2】:您可以通过nls_charset_id
函数获取字符集ID。
试试这个:
select
XMLType( BLOB_COLUMN,
nls_charset_id('EE8ISO8859P2')
) as XML
from my_table;
【讨论】:
2 分钟前回答相同以上是关于BLOB 到 XMLType XML 解析在 oracle 中失败的主要内容,如果未能解决你的问题,请参考以下文章
使用 PL/SQL 解析 XML 输出 html 中特定标签的内容