Rumah  >  Artikel  >  Bagaimana untuk menyelesaikan set watak bercelaru dalam Oracle

Bagaimana untuk menyelesaikan set watak bercelaru dalam Oracle

zbt
zbtasal
2023-07-07 14:45:342700semak imbas

oracle Solution untuk mengubah suai set aksara yang bercelaru: 1. Cari fail TNSNAMES.ORA dan cari alias pangkalan data untuk disambungkan, tetapkan pembolehubah persekitaran NLS_LANG, buka SQL*Plus, dan gunakan konfigurasi di atas untuk menyambung ke pangkalan data; 2. Cipta pangkalan data untuk menyimpan jadual aksara Cina, masukkan beberapa aksara Cina ke dalam medan yang menyimpan aksara Cina, gunakan pakej UTL_FILE untuk mengeluarkan aksara Cina, dan selepas pelaksanaan, fail bernama chinese.txt akan dibuat dalam Direktori UTL_DIR, yang mengandungi aksara Cina.

Bagaimana untuk menyelesaikan set watak bercelaru dalam Oracle

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Oracle Database 20c, komputer DELL G3.

Dalam pangkalan data Oracle, aksara bercelaru sering berlaku apabila menetapkan set aksara Cina, yang menyebabkan sakit kepala bagi banyak pembangun dan pentadbir. Hari ini, editor telah membawakan anda beberapa kaedah untuk menyelesaikan masalah aksara Cina yang kacau dalam pangkalan data Oracle. Saya harap ia akan membantu anda.

Kaedah 1: Ubah suai NLS_LANG

NLS_LANG ialah pembolehubah persekitaran dalam pangkalan data Oracle, yang mentakrifkan kaedah pengekodan aksara dalam pangkalan data. Selepas Oracle 9i, nilai NLS_LANG lalai kepada AMERICAN_AMERICA.UTF8 Kaedah pengekodan ini tidak menyokong bahasa Cina, jadi kami perlu mengubah suai nilai NLS_LANG secara manual untuk menyokong bahasa Cina.

Langkah-langkahnya adalah seperti berikut:

1 Cari fail TNSNAMES.ORA dan cari alias pangkalan data untuk disambungkan, seperti:

orcl =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

2 Tetapkan pembolehubah persekitaran NLS_LANG, nilainya ialah set aksara digunakan, seperti:

set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

Atau

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

3 Buka SQL*Plus dan gunakan konfigurasi di atas untuk menyambung ke pangkalan data:

sqlplus system/oracle@orcl

Kaedah 2: Gunakan pakej UTL_FILE

Pakej UTL_FILE digunakan untuk fail I/O dalam pangkalan data Oracle Pakej operasi standard. UTL_FILE boleh digunakan untuk membaca dan menulis fail teks, dan aksara Cina boleh diproses dengan mudah.

Langkahnya adalah seperti berikut:

1 Buat jadual untuk menyimpan aksara Cina, seperti:

CREATE TABLE chinese (
name VARCHAR2(20),
clob CLOB
);

2 Masukkan beberapa aksara Cina ke dalam medan yang menyimpan aksara Cina:

INSERT INTO chinese VALUES (‘中国’, ‘中华人民共和国’);

3 gunakan pakej UTL_FILE untuk mengeluarkan aksara Cina:

DECLARE
file_handle UTL_FILE.FILE_TYPE;
chinese_clob CLOB;
BEGIN
SELECT clob INTO chinese_clob FROM chinese WHERE name=’中国’;
file_handle := UTL_FILE.FOPEN(‘UTL_DIR’, ‘chinese.txt’, ‘w’, 32767);
UTL_FILE.PUT_LINE(file_handle, chinese_clob, FALSE);
UTL_FILE.FCLOSE(file_handle);
END;

Selepas pelaksanaan, fail bernama chinese.txt akan dibuat dalam direktori UTL_DIR, yang mengandungi aksara Cina.

Ringkasan

Kedua-dua dua kaedah di atas boleh menyelesaikan masalah aksara Cina bercelaru dalam pangkalan data Oracle. Kaedah pertama ialah mengubah suai nilai pembolehubah persekitaran NLS_LANG untuk menyokong aksara Cina, dan kaedah kedua ialah membaca dan menulis aksara Cina melalui pakej UTL_FILE. Mengikut keperluan khusus, anda boleh memilih kaedah yang sepadan untuk menyelesaikannya.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan set watak bercelaru dalam Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn