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 (または呼び出し元のシェル) の問題です。

リテラルの非 ascii-chars を に置き換えますUTL_I18N.raw_to_char ( HEXTORAW ( '<character_as_octet_sequence>' ), '<charset_encoding>' )。これにより、文字がデータベースの文字セットに変換され、仕様に us-ascii シンボルのみが必要なため、その間のツールを通過する必要があります。

あなたの例では:

  • サーコンフレックス ->UTL_I18N.raw_to_char ( HEXTORAW ( 'C5' ), 'WE8ISO8859P15' )
  • ウムラウト ->UTL_I18N.raw_to_char ( HEXTORAW ( 'D6' ), 'WE8ISO8859P15' )
于 2013-03-11T16:09:38.970 に答える