dengan pengaturan yang tepat, skrip Anda berfungsi dengan SQL*Plus. Inilah yang saya lakukan untuk mengujinya:
- (jelas) database Anda harus mendukung unicode. Gunakan NVARCHAR2 jika perlu.
- Siapkan aplikasi klien Anda dengan benar. pastikan variabel NLS_LANG Anda diatur dengan benar, itu harus mendukung unicode. Saya menyetel milik saya ke
AMERICAN_ENGLISH.UTF8
. Meskipun jendela DOS dari SQL*Plus tidak akan menampilkan semua karakter unicode, mereka akan digabungkan dengan benar ke dalam file. - (jelas juga) pastikan aplikasi yang membaca file spool membukanya di set karakter yang tepat.
Sekarang untuk skripnya:
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
Ini akan memasukkan karakter Rusia ЙЖ
SQL> SPOOL STREET_POINT_THR.BQSV
SQL> SELECT * FROM STREET_POINTS;
ðÖðû
SQL> SPOOL OFF
File, dibuka dengan editor teks (jEdit dalam kasus saya) dengan set karakter yang benar (UTF-8) menampilkan karakter dengan benar.