Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Special Characters Created on a UNIX system with HP Terminal on US7ASCII

Re: Special Characters Created on a UNIX system with HP Terminal on US7ASCII

From: Martin T. <0xCDCDCDCD_at_gmx.at>
Date: Thu, 19 Jul 2007 17:49:44 +0200
Message-ID: <469ffa5a$0$1340$834e42db@reader.greatnowhere.com>


Frank van Bortel wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Martin T. wrote:
>> Frank van Bortel wrote:

>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Martin T. wrote:
>>>> >From the "Globalization Support Guide":
>>>> US7ASCII / U.S. 7-bit ASCII / US / Bits: 7 / ASCII
>>>>
>>>> So you are telling us that you used US7ASCII to store German umlauts?
>>>> This is just wrong. US7ASCII is just 0x00 -> 0x7F but the characters
>>>> you are talking about are 0x80 -> 0xFF and so cannot be correctly
>>>> stored in an US7ASCII character set column.
>>>>
>>> Simply not true - Oracle *always* stores bytes. Very dangerous
>>> assumption, that has cost a lot of money already.
>>>
>>> Same with the ability to "store the Euro-character in
>>> WE8ISO8859P1" - it works with no problem at all.
>>>
>>> Basically, because you do not store the euro symbol,
>>> but a code. It is up to the client to display this code
>>> correctly as '€'. If the client is thinking the code
>>> belongs to '¢' - it will display that.
>>> If the client does not know how to display, the convention is
>>> to display an inverted question mark.
>>>
>> I am sorry, I did not want to imply that Oracle actually stores 7bits.
>> I oc assumed that there are simply stored byte values since the
>> characters are there inside the DB with the correct byte code.
>>
>> Still it is the wrong character set. It's like telling oracle the the
>> charset is UTF8 and then inserting WE8ISO8859P1  -- it *should* work if
>> you lie to Oracle about the NLS_LANG character sets, but it's still
>> wrong and will get you (it got me) into trouble.
>>
>> cheers,
>> Martin
> 
> What would the right thing be then? DB char set = server NLS settings =
> client NLS settings? Just as dangerous and wrong.
> 

Sorry. You lost me there.
"What would the right thing be?" Of course USING the char set you tell the DB you are using.
If they (OP) tell the DB they use US7ASCII and then go and store WE8ISO8859P1 in it, it is certainly not the right thing.

cheers,
Martin

p.s.: Also, in this day and age I found and find it quite horrible of Oracle to even allow any client to insert crap into VARCHAR columns just because it has the wrong NLS_ setting. (By crap I mean for instance putting invalid byte sequences into an UTF8 column) Received on Thu Jul 19 2007 - 10:49:44 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US