sql >> Database teknologi >  >> RDS >> Oracle

Oracle Unicode-spooling

med de rigtige indstillinger virker dit script med SQL*Plus. Her er, hvad jeg gjorde for at teste det:

  • (naturligvis) din database skal understøtte unicode. Brug NVARCHAR2 om nødvendigt.
  • Konfigurer din klientapplikation korrekt. sørg for, at din NLS_LANG-variabel er indstillet korrekt, den skal understøtte unicode. Jeg indstillede mit til AMERICAN_ENGLISH.UTF8 . Selvom DOS-vinduet i SQL*Plus ikke viser alle unicode-tegn, vil de blive spoolet korrekt ind i filen.
  • (selvfølgelig også) sørg for, at den applikation, der læser den spoolede fil, åbner den i det rigtige tegnsæt.

Nu til scriptet:

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

Dette vil indsætte de russiske tegn ЙЖ

SQL> SPOOL STREET_POINT_THR.BQSV
SQL> SELECT * FROM STREET_POINTS;
ðÖðû
SQL> SPOOL OFF

Filen, åbnet med en teksteditor (jEdit i mit tilfælde) med det korrekte tegnsæt (UTF-8) viser tegnene korrekt.



  1. gem install pg --with-pg-config virker, bundt mislykkes

  2. CTE-fejl:Typerne matcher ikke mellem ankeret og den rekursive del

  3. Sådan vælger du et bestemt antal tegn fra venstre eller højre for en streng i SQL Server

  4. Bruger ikke NULL i PostgreSQL stadig en NULL bitmap i headeren?