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

Masalah menggunakan/menampilkan karakter khusus dari Oracle db di .Net app

Karakter tertentu dalam rangkaian karakter WE8ISO8859P1 memiliki representasi biner yang berbeda dari karakter yang sama di UTF8.

Yang saya sarankan adalah 2 kemungkinan cara

1) Coba gunakan penyedia data asli Oracle untuk .NET (ODP.NET). Mungkin ada bug/fitur di perpustakaan Microsoft System.Data.OracleClient bahwa adaptor ini tidak secara otomatis mendukung konversi WE8ISO8859P1 ke unicode. Berikut ini tautan ke ODP.NET

Saya berharap akan ada dukungan untuk pengkodean ini di ODP (tetapi untuk mengatakan benar saya tidak pernah memeriksa ini, ini hanya saran)

2) Solusi:di Dataset, Anda harus membuat bidang biner (dipetakan ke bidang tabel asli) dan bidang String (tidak dipetakan ke database). Saat Anda memuat data ke set data, ulangi untuk setiap baris dan lakukan konversi dari array biner ke string.

Kode harus seperti ini

Encoding e = Encoding.GetEncoding("iso-8859-1");
foreach(DataRow row in dataset.Tables["MyTable"])
{
    if (!row.IsNull("MyByteArrayField"))
        row["MyStringField"] = e.GetString((row["MyByteArrayField"] as byte[]));
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Query untuk Menghitung () beberapa tabel

  2. PL/SQL Gateway di R11i

  3. Pengembalian kueri:ORA-01427 Subkueri baris tunggal mengembalikan lebih dari satu baris

  4. Metode Pengumpulan:Prosedur HAPUS Dalam Database Oracle

  5. SQLPlus varchar2 mengeluarkan spasi putih