sql >> Databasteknik >  >> RDS >> Oracle

NLS_CHARACTERSET WE8ISO8859P1- och UTF8-problem i Oracle

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

Å andra sidan använder UTF-8 flera byte för att lagra en symbol.

Om din databas använder WE8ISO8859P1 och kolumntypen är från gruppen VARCHAR (inte NVARCHAR) och du infogar en symbol med kod> 255, kommer denna symbol att omvandlas till WE8ISO8859P1 och viss information kommer att gå förlorad.

För att uttrycka det enkelt, om du infogar UTF-8 i en db med en byte-teckenuppsättning, går dina data förlorade.

Länken ovan beskriver olika scenarier hur man löser problemet.

Du kan också prova Oracle asciistr /unistr fungerar, men i allmänhet är det inte ett bra sätt att hantera sådana problem.




  1. Indexera främmande nycklar i Postgresql

  2. SQL-syntax eller databasbegränsningar?

  3. MySqlDataReader.GetStream() kastar IndexOutOfRangeException

  4. visar icke aggregerad kolumn i en grupp efter fråga i SQL