sql >> Database teknologi >  >> RDS >> Oracle

NLS_CHARACTERSET WE8ISO8859P1 og UTF8 problemer i Oracle

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

På den anden side bruger UTF-8 flere bytes til at gemme et symbol.

Hvis din database bruger WE8ISO8859P1, og kolonnetypen er fra VARCHAR-gruppen (ikke NVARCHAR), og du indsætter et symbol med kode> 255, vil dette symbol blive transformeret til WE8ISO8859P1, og nogle oplysninger vil gå tabt.

For at sige det enkelt, hvis du indsætter UTF-8 i en db med enkelt-byte tegnsæt, går dine data tabt.

Linket ovenfor beskriver forskellige scenarier, hvordan man tackler dette problem.

Du kan også prøve Oracle asciistr /unistr fungerer, men generelt er det ikke en god måde at håndtere sådanne problemer på.




  1. Hvordan bygger jeg en forespørgsel i Ruby on Rails, der kun forbindes på maks. af en has_many-relation og inkluderer et udvalgt filter på denne relation?

  2. PRØV CATCH med linket server i SQL Server 2005 virker ikke

  3. Hvordan laver man en PostgreSQL-forespørgsel med where-in-klausul, som indeholder flere kolonner programmatisk?

  4. SQL-sætninger Fejl i java-kode ved brug af Intellij og DB Navigator