Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ketika memasukkan karakter persia di Oracle db saya melihat tanda tanya

Ketika Anda mengatakan Anda berjalan di server, maksud Anda melalui SQL*Plus?

Hal pertama yang harus diperiksa adalah karakter sebenarnya yang disimpan - gunakan fungsi DUMP untuk memeriksa ini:

Fungsi Pembuangan Oracle

Ini akan memberi tahu Anda apa yang sebenarnya disimpan. Jika rantai antara aplikasi klien Anda dan server Oracle tidak sesuai, Anda mungkin mendapatkan konversi kumpulan karakter.

Dengan asumsi karakter yang benar sedang disimpan, apa yang kemudian Anda lihat di server / sqlplus adalah konversi karakter yang ditampilkan. Yaitu. Oracle "menyajikan" karakter dengan benar, tetapi tampilan tidak menanganinya seperti yang Anda harapkan. Untuk memperbaikinya, Anda perlu menyetel variabel lingkungan NLS_LANG ke rangkaian karakter yang benar.

misalnya, dalam proyek baru-baru ini defaultnya:

set NLS_LANG=AMERICAN_AMERICA.US7ASCII

lalu kueri beberapa data yang diberikan:

NAME
-----------------------------------
MS ELLIE MARTALL

Tapi:

set NLS_LANG=AMERICAN_AMERICA.US8PC437

Kemudian menjalankan kueri memberi:

NAME
-----------------------------------
MS ╔LLIE MARTALL

Dan juga:

set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15

memberi:

NAME
-----------------------------------
MS ╔LLIE MARTALL

Kuncinya di sini adalah data aktualnya sama, cara penyajian data di layar Andalah yang membedakannya, dan perilaku itu dapat dikontrol oleh NLS_LANG.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. TEMPFILE Offline Fisik Siaga

  2. Mengapa Konversi tidak valid meminta KODE KESALAHAN:17132?

  3. Bagaimana cara mengetahui kapan tabel tertentu dibuat di Oracle?

  4. MONTHS_BETWEEN() Fungsi di Oracle

  5. Mendapatkan kesalahan saat Menjalankan Paket