sql >> Databáze >  >> RDS >> Oracle

Oracle Unicode Spooling

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ě.



  1. Jak vymažete protokol transakcí SQL Server?

  2. Jak nastavit výchozí hodnotu pro existující sloupec

  3. Jak zrychlit SELECT .. LIKE dotazy v MySQL na více sloupcích?

  4. SQL DROP COLUMN pro začátečníky