Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle Unicode Spooling

с правилните настройки вашият скрипт работи със SQL*Plus. Ето какво направих, за да го тествам:

  • (очевидно) вашата база данни трябва да поддържа unicode. Използвайте NVARCHAR2, ако е необходимо.
  • Настройте правилно клиентското си приложение. уверете се, че вашата променлива NLS_LANG е зададена правилно, тя трябва да поддържа unicode. Зададох моя на AMERICAN_ENGLISH.UTF8 . Въпреки че прозорецът на DOS на SQL*Plus няма да показва всички символи в уникод, те ще бъдат спулирани правилно във файла.
  • (очевидно също) уверете се, че приложението, което чете буферния файл, го отваря в правилния набор от знаци.

Сега за скрипта:

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

Файлът, отворен с текстов редактор (jEdit в моя случай) с правилния набор от знаци (UTF-8), показва символите правилно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да дефинирам тригер ON COMMIT в Oracle?

  2. Има ли PL/SQL прагма, подобна на DETERMINISTIC, но за обхвата на един единствен SQL SELECT?

  3. Как да извикате съхранена процедура в пакет оракул с Entity Framework?

  4. Извличане на съобщения от пощенска кутия с помощта на PL/SQL Mail_Client API

  5. Как да се свържа с отдалечена Oracle DB с PL/SQL Developer?