se správným nastavením váš skript funguje s SQL*Plus. Zde je to, co jsem udělal, abych to otestoval:
- (samozřejmě) vaše databáze musí podporovat unicode. V případě potřeby použijte NVARCHAR2.
- Nastavte svou klientskou aplikaci správně. ujistěte se, že je vaše proměnná NLS_LANG nastavena správně, musí podporovat unicode. Můj je nastaven na
AMERICAN_ENGLISH.UTF8
. I když okno DOS SQL*Plus nezobrazí všechny znaky Unicode, budou správně zařazeny do souboru. - (samozřejmě také) ujistěte se, že aplikace, která čte soubor pro souběžný tisk, jej otevírá ve správné znakové sadě.
Nyní ke skriptu:
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
Tím se vloží ruské znaky ЙЖ
SQL> SPOOL STREET_POINT_THR.BQSV
SQL> SELECT * FROM STREET_POINTS;
ðÖðû
SQL> SPOOL OFF
Soubor otevřený v textovém editoru (v mém případě jEdit) se správnou znakovou sadou (UTF-8) zobrazuje znaky správně.