Rumah > pangkalan data > Oracle > teks badan

Menganalisis dan menyelesaikan masalah aksara Cina yang bercelaru dalam Oracle di bawah Linux

PHPz
Lepaskan: 2023-04-18 15:32:47
asal
2570 orang telah melayarinya

Apabila menggunakan pangkalan data Oracle di bawah sistem Linux, masalah aksara Cina bercelaru mungkin berlaku, yang disebabkan terutamanya oleh tetapan set aksara yang salah. Artikel ini akan memperkenalkan cara menyelesaikan masalah aksara Cina yang bercelaru dalam pangkalan data Oracle di bawah sistem Linux.

1. Masalah

Apabila menggunakan pangkalan data Oracle di bawah sistem Linux, masalah aksara Cina yang bercelaru mungkin berlaku. Aksara bercelaru biasanya dipaparkan sebagai beberapa aksara yang tidak dapat dikenali atau sebagai ruang letak seperti petak atau tanda tanya.

2. Punca masalah

Set aksara pangkalan data Oracle merangkumi dua aspek: set aksara pangkalan data dan set aksara pelanggan. Apabila set aksara pelanggan tidak konsisten dengan set aksara pangkalan data, aksara Cina akan menjadi kacau. Apabila memasang pangkalan data Oracle di bawah sistem Linux, anda perlu menetapkan set aksara yang betul, jika tidak, masalah aksara Cina yang kacau akan mudah berlaku.

3. Penyelesaian

1. Tanya set aksara pangkalan data dan klien

Kami boleh menggunakan dua arahan berikut untuk menanyakan set aksara pangkalan data dan klien semasa masing-masing:

select * from nls_database_parameters where parameter like 'NLS%CHARACTERSET';
Salin selepas log masuk

Outputnya serupa dengan:

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET               ZHS16GBK
Salin selepas log masuk
Salin selepas log masuk
select * from nls_session_parameters where parameter like 'NLS%CHARACTERSET';
Salin selepas log masuk
Salin selepas log masuk

Outputnya serupa dengan:

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET               AL32UTF8
Salin selepas log masuk

Kita dapati bahawa watak set pangkalan data semasa ialah ZHS16GBK , dan set aksara pelanggan ialah AL32UTF8, itulah sebabnya aksara Cina bercelaru.

2. Ubah suai set aksara pelanggan

Kami boleh menyelesaikan masalah aksara Cina yang kacau dengan mengubah suai set aksara pelanggan untuk menjadikannya konsisten dengan set aksara pangkalan data.

Mula-mula kita perlu mengedit fail tnsnames.ora klien, yang terletak dalam direktori $ORACLE_HOME/network/admin. Kita boleh menggunakan arahan berikut untuk membuka fail:

vi $ORACLE_HOME/network/admin/tnsnames.ora
Salin selepas log masuk

Cari maklumat sambungan klien dalam fail yang dibuka, contohnya:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
Salin selepas log masuk

Kemudian tambahkan dua baris berikut pada maklumat sambungan Baris:

NLS_LANG = "ZHS16GBK"
NLS_NUMERIC_CHARACTERS = ",."
Salin selepas log masuk

NLS_LANG mewakili set aksara klien semasa Nilai ini menentukan set aksara di mana klien dan pelayan bertukar data. NLS_NUMERIC_CHARACTERS mewakili format aksara angka, iaitu ., secara lalai Parameter ini perlu diubah suai dalam beberapa kes khas.

Maklumat sambungan terakhir yang diubah suai mungkin kelihatan seperti:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
  (NLS_LANG = "ZHS16GBK")
  (NLS_NUMERIC_CHARACTERS = ",.")
Salin selepas log masuk

Simpan fail dan tutup.

3. Sambung semula ke pangkalan data

Selepas mengubah suai set aksara pelanggan, kami perlu menyambung semula ke pangkalan data untuk menjadikannya berkesan. Anda boleh menggunakan arahan berikut untuk menyambung semula ke pangkalan data:

sqlplus / as sysdba
Salin selepas log masuk

Sambung ke pangkalan data selepas memasukkan kata laluan, dan kemudian tanya set aksara pelanggan sekali lagi:

select * from nls_session_parameters where parameter like 'NLS%CHARACTERSET';
Salin selepas log masuk
Salin selepas log masuk

Output adalah serupa dengan:

PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_CHARACTERSET               ZHS16GBK
Salin selepas log masuk
Salin selepas log masuk

Anda dapat melihat set aksara pelanggan telah berjaya diubah suai kepada ZHS16GBK, yang menyelesaikan masalah aksara Cina yang bercelaru.

4. Ringkasan

Apabila menggunakan pangkalan data Oracle di bawah sistem Linux, aksara Cina bercelaru adalah masalah biasa. Ini disebabkan terutamanya oleh ketidakkonsistenan antara set aksara klien dan set aksara pangkalan data. Dengan mengubah suai set aksara pelanggan, kami boleh menyelesaikan masalah aksara Cina yang kacau. Di atas adalah langkah khusus untuk menyelesaikan masalah aksara Cina yang bercelaru dalam pangkalan data Oracle di bawah sistem Linux.

Atas ialah kandungan terperinci Menganalisis dan menyelesaikan masalah aksara Cina yang bercelaru dalam Oracle di bawah Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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!