As I noted in my other reply to this thread, you should NEVER use any character datatype (char, varchar, varchar2, clob and their 'N' versions plus long) to store any sort of binary data. ?If your data is binary, it must be stored in one of the binary datatypes, RAW, BLOB (or LONG RAW in historic versions)

For some really strange reason, it seems that Oracle no longer thinks people need the RAW datatype; the documentation (as of 8.1 at least) says it is for 'backward compatibility only' apparently because you should use BLOB in stead. ?Although the semantics for accessing BLOB data are now (as of 9i) the same as for raw, I actually strongly disagree with the change to make RAW a second class data type: ?There can be very legitimate reasons why you want to store small to medium sized amounts of binary data as it is done in RAW (which really is a variable length datatype with max 2000 bytes); in particular such data can be indexed, which is not the case for BLOB.

/Bjørn.

david davis wrote:
Mark,

I have seen this issue here where an application scrambles/encrypts data into a character field varchar2 but it doesn't work right when moved to another environment.

The source environment was using NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
but the target was using NLS_LANG=AMERICAN_AMERICA.US7ASCII. Going from an 8-bit characterset to a 7-bit characterset causes problems where the byte code value should have been properly represented by 8 bits and not 7.

eg. VARCHAR2(15) field contains data ÚØÝ (dec: 218, 216, 221) comes out as U?Y when converted to US7ASCII (see SQL CONVERT function).

Another app I use here does work, but it stores the values in Hex not with the character representation.

Options:

Used 8 bit characterset on database.
Store data as hex value eg. Passwords stored in Oracle table (dba_users [sys.user$]) which is a VARCHAR2(30) field.
User RAW fields.

Converting the database characterset requires a database recreation.

David





From: "Mark Richard" <[EMAIL PROTECTED]>
Reply-To: [EMAIL PROTECTED]
To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]>
Date: Wed, 05 Mar 2003 19:28:46 -0800

Dear List,

I have a question for the character set guru's out there...

We are trying to store encrypted text from a Forte application into a
varchar2 column in Oracle (8.1.7.4).? When Forte retrieves the string a
couple of the characters appear to have changed value.? I assume we are
experiencing some kind of character set limitation.? Does anyone have any
ideas about how we might work around this issue?? I have included the NLS
section from out init.ora section for reference.

The only workaround we can think of is converting the string to hex values
and reassembling these into a long string and then storing that result.
Does this sound reasonable (assuming it's not a simple character set
change).

Please keep the help simple - I have never had to be concerned with
character sets before and don't really understand all of the terminology.

# NLS settings
nls_date_format???????????????? = "DD-MON-RRRR"
nls_sort??????????????????????? = BINARY
nls_language??????????????????? = AMERICAN
nls_numeric_characters????????? = ".,"

Thanks in advance,

Mark.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&ggt;>>>>>>>
?? Privileged/Confidential information may be contained in this message.
????????? If you are not the addressee indicated in this message
?????? (or responsible for delivery of the message to such person),
??????????? you may not copy or deliver this message to anyone.
In such case, you should destroy this message and kindly notify the sender
?????????? by reply e-mail or by telephone on (61 3) 9612-6999.
?? Please advise immediately if you or your employer does not consent to
??????????????? Internet e-mail for messages of this kind.
??????? Opinions, conclusions and other information in this message
????????????? that do not relate to the official business of
???????????????????????? Transurban City Link Ltd
???????? shall be understood as neither given nor endorsed by it.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&ggt;>>>>>>

--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Mark Richard
? INET: [EMAIL PROTECTED]

Fat City Network Services??? -- 858-538-5051 http://www.fatcity.com
San Diego, California??????? -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).? You may
also send the HELP command for other information (like subscribing).



_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*? http://join.msn.com/?page=features/junkmail


--
Bjørn Engsig, Miracle A/S
Member of Oak Table Network
[EMAIL PROTECTED] - http://MiracleAS.dk

Reply via email to