1

我无法在 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 是什么?

谢谢。

4

2 回答 2

1

您可以通过函数获取字符集 ID nls_charset_id

尝试这个:

select
XMLType( BLOB_COLUMN,
         nls_charset_id('EE8ISO8859P2')
   ) as XML
from my_table;
于 2019-04-11T12:38:07.267 回答
1

使用nls_charset_id获取 ID:

select
XMLType( BLOB_COLUMN,
         nls_charset_id('ISO-8859-2')
       ) as XML
from my_table;

NLS_CHARSET_ID 返回字符集名称字符串对应的字符集 ID 号。

于 2019-04-11T12:36:15.577 回答