適切な設定を使用すると、スクリプトはSQL*Plusで機能します。これが私がそれをテストするためにしたことです:
- (明らかに)データベースはUnicodeをサポートしている必要があります。必要に応じてNVARCHAR2を使用してください。
- クライアントアプリケーションを正しくセットアップします。 NLS_LANG変数が正しく設定されていることを確認してください。Unicodeをサポートしている必要があります。
AMERICAN_ENGLISH.UTF8
に設定しました 。 SQL * PlusのDOSウィンドウにはすべてのUnicode文字が表示されるわけではありませんが、ファイルに正しくスプールされます。 - (もちろん)スプールファイルを読み取るアプリケーションが正しい文字セットでファイルを開くことを確認してください。
スクリプトについて:
SQL> select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET';
PARAMETER VALUE
------------------ ------
NLS_CHARACTERSET UTF8
SQL> create table street_points (data varchar2(10));
Table created
SQL> INSERT INTO street_points VALUES (chr(53401)||chr(53398));
1 row inserted
これにより、ロシア語の文字ЙЖ
が挿入されますSQL> SPOOL STREET_POINT_THR.BQSV
SQL> SELECT * FROM STREET_POINTS;
ðÖðû
SQL> SPOOL OFF
正しい文字セット(UTF-8)を使用してテキストエディタ(私の場合はjEdit)で開いたファイルは、文字を正しく表示します。