2

我有一个包含 XMLType 的表。我的标签包含 Å 和 Ö,例如“ÅR”我已经使用 Oracle SQL Developer 对其进行了解析,但是一旦我尝试在 Sql Plus 中使用相同的查询,它就不会接受 åäö。这个不知道怎么解决。。

所以在终端中(原始文件或 .sql 文件中)

select count(d.year)
from fic data, XMLTable('/Arkiv/Record'             
PASSING data.xmldata                
COLUMNS             
YEAR    varchar2(20)    PATH    'ÅR'
) d where data.id =7;

会报以下错误:

ORA-19114: XPST0003 - error during parsing the XQuery expression:
LPX-00800: XQuery invalid token ''
1   ÅR
-  ^
4

1 回答 1

0

这很可能是 sqlplus(或您从中调用它的 shell)以错误的编码提供数据的问题。

用 .替换文字中的非 ascii 字符UTL_I18N.raw_to_char ( HEXTORAW ( '<character_as_octet_sequence>' ), '<charset_encoding>' )。这会将字符转换为数据库字符集,并且应该通过其间的任何工具,因为您只需要 us-ascii 符号进行规范。

在你的例子中:

  • 一个圆环 ->UTL_I18N.raw_to_char ( HEXTORAW ( 'C5' ), 'WE8ISO8859P15' )
  • O变音 ->UTL_I18N.raw_to_char ( HEXTORAW ( 'D6' ), 'WE8ISO8859P15' )
于 2013-03-11T16:09:38.970 回答