Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: character set conversion
A characterset is a set of characters (nice huh). A long time ago there was
somebody who invented ASCII. This is the original characterset we all work
with. There are 128 characters in this set and that is 7 bits. This set DOES
NOT allow ä, ë, etc.
Then there was somebody else who inventend extended ascii (256 character)
and that is 8 bits. This set allows ä, ë, etc.
US7ASCII (is says 7) is a ASCII set and is not supposed to understand data
with 8 bits (but oracle will store all the 8bits). WE8ISO... is a 8 bit
characterset and that does support extended ascii.
Now comes the shit:
When two different databases (even instances) have the same characterset
there will be no conversion of data. BUT if they are different this happens:
-when moving data from a 8-bit database (we8...) to a 7-bit database
(us7ascii) sql*net detect that there is a difference and will convert the
8-bit data to seven bits (ä becomes a). It nicely converts the first bit.
-the other way around, moving data from a 7-bits database to a 8 bits
database sql*net will again try to convert. However, us7ascii supports only
the characters with a ascii-number of 0-127. So the conversion will skip the
first bit in your data. In this case ä becomes d. So here you will lose data
By the way:
Between your client and the database the same thing happens
(pc is 8 bits and database 7), change the registry nls_lang (win95) or
whatever is necessary on your platform.
sbenyo_at_ibm.net heeft geschreven in bericht <363CE726.1F1ED4E9_at_ibm.net>...
>Hello,
>
>I recently transferred my databases from US7ASCII characterset to
>IW8ISO8859P8.
>(updating the sys.props$ system table)
>The process was very easy and passed with no apperant problems.
>Unfortunately, There is a db-link between two of my databases and
>because the transfer was
>not immediate in all databases, I had rows in IW8ISO8859P8 written into
>a US7ASCII database,
>and of-course they got messed up! (seeing only '????').
>
>1) What is really a characterset and how does it influence the database
>?
>2) Is there a way to get back the data that was written from
>IW8ISO8859P8 into US7ASCII database ?
>
>I really need some explaining in this matter so I'll appreciate any
>help!
>
> 10X
>
>
>Shaul
>
>
Received on Tue Nov 03 1998 - 13:15:33 CST