Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle Unicode Spooling

với các cài đặt phù hợp, tập lệnh của bạn hoạt động với SQL * Plus. Đây là những gì tôi đã làm để kiểm tra nó:

  • (rõ ràng) cơ sở dữ liệu của bạn phải hỗ trợ unicode. Sử dụng NVARCHAR2 nếu cần.
  • Thiết lập ứng dụng khách của bạn một cách chính xác. đảm bảo rằng biến NLS_LANG của bạn được đặt chính xác, nó phải hỗ trợ unicode. Tôi đặt của tôi thành AMERICAN_ENGLISH.UTF8 . Mặc dù cửa sổ DOS của SQL * Plus không hiển thị tất cả các ký tự unicode nhưng chúng sẽ được lưu vào tệp một cách chính xác.
  • (rõ ràng là quá) đảm bảo rằng ứng dụng đọc tệp được lưu đệm sẽ mở tệp đó theo đúng bộ ký tự.

Bây giờ cho tập lệnh:

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

Thao tác này sẽ chèn các ký tự tiếng Nga ЙЖ

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

Tệp, được mở bằng trình soạn thảo văn bản (trong trường hợp của tôi là jEdit) với bộ ký tự chính xác (UTF-8) sẽ hiển thị các ký tự một cách chính xác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-03113:phần cuối của tệp trên kênh liên lạc

  2. làm thế nào để sửa đổi một ràng buộc kiểm tra hiện có?

  3. Tự động tạo tệp phản hồi

  4. Oracle Text sẽ không hoạt động với NVARCHAR2. Những gì khác có thể không có sẵn?

  5. Java:Đọc Blob từ Oracle