sql >> Database >  >> RDS >> Oracle

NLS_CHARACTERSET WE8ISO8859P1 en UTF8 problemen in Oracle

http://docs.oracle.com/cd /B19306_01/server.102/b14225/ch2charset.htm#g1009784

Aan de andere kant gebruikt UTF-8 meerdere bytes om een ​​symbool op te slaan.

Als uw database WE8ISO8859P1 gebruikt en het kolomtype komt uit de VARCHAR-groep (niet NVARCHAR) en u voegt een symbool in met code> 255, dan wordt dit symbool omgezet in WE8ISO8859P1 en gaat er wat informatie verloren.

Simpel gezegd, als u UTF-8 invoegt in een db met een single-byte tekenset, gaan uw gegevens verloren.

De link hierboven beschrijft verschillende scenario's om dit probleem aan te pakken.

Je kunt ook Oracle asciistr proberen /unistr functies, maar over het algemeen is het geen goede manier om met dergelijke problemen om te gaan.




  1. Replicatiefailover voor MySQL en MariaDB beheren met pre- of post-failoverscripts

  2. Hoe datatable doorgeven als invoer voor procedure in C #?

  3. Fix "ERROR 3942 (HY000):elke rij van een VALUES-clausule moet ten minste één kolom hebben" bij gebruik van de VALUES-instructie in MySQL

  4. mysql join 3 tabellen