Rumah > masalah biasa > teks badan

Bagaimana untuk menyelesaikan set watak bercelaru dalam Oracle

zbt
Lepaskan: 2023-07-07 14:51:21
asal
2660 orang telah melayarinya

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)
)
)
Salin selepas log masuk

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

set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
Salin selepas log masuk

Atau

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
Salin selepas log masuk

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
);
Salin selepas log masuk

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

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

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;
Salin selepas log masuk
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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!