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

Home -> Community -> Usenet -> c.d.o.misc -> Re: Weird characters returned from Oracle database

Re: Weird characters returned from Oracle database

From: danagel <danagel_at_pacifier.com>
Date: Wed, 6 Nov 2002 21:12:15 -0800
Message-ID: <usjths5pvs6qb6@corp.supernews.com>


I remember a setting on the install of the server (and possibly the client?) that it was mandatory to choose a character set code... Ask your DBA about the character set settings for both the server and the client.

heres an excerpt from a page hit by google...

(The mention of NLS_LANG on the client is worth having a look)

Changing the Character Set of your Oracle Instance

Oracle servers, by default, do not install with a character set that allows 8-bit ASCII characters to be represented correctly. Any high ASCII characters (greater than 127) are translated into other characters. This can cause a problem if you expect that any mail flowing through ListManager will use special accent characters, such as ÿ or á.

To get around this problem, create your Oracle instance with an 8-bit ASCII character set. If you don't have a preference, we recommend you use:

WE8ISO8859P1 This character set appears to also be the one used by Windows as its default, so if both client and server are set to use the same character set, you need not worry about characters being translated.

However, if you choose a different character set, the data will be translated into the client character set, which will almost certainly cause problems. The client character set can be configured using an environmental variable called NLS_LANG. The syntax of the variable is <language>_<country>.<char set>, such as

American_America.US8PC437

D.

"Marty Will Follow" <marty_mj_at_my-deja.com> wrote in message news:8d15cc45.0211040744.3aa9db26_at_posting.google.com...
> Hello,
>
> I'm experiencing a strange compatibility issue (I think). Hopefully I
> make some sense describing the problem...
> I have some Visual Basic code that calls a stored procedure on an
> Oracle database (through an ODBC link). Now, when I execute it on my
> laptop, all behaviour is as expected. However, when executing it on
> the corporate desktop (where it should run in the end) I get a strange
> return code. There are some weird ASCII characters such as 0%3|| (I'm
> using standard characters at the moment as the 'registered trademark'
> sign etc. may not display properly).
> I tried looking at the regional settings (even though I make no use at
> all of dates, currencies, time, etc. just plain text strings), but it
> seems as if my laptop has the same settings as the desktop
> workstation.
>
> Since it works on at least one computer (the development laptop) I
> think it is not a Visual Basic problem (but I'm not sure). Can Oracle
> really be this big a pain in the ass?
>
> Here is the VB-code that builds up the stored procedure:
>
> -----
> Public Function InitializeACC() As Boolean
>

'***************************************************************************
***

> ' InitializeACC
> ' Initializes the command for executing the Intelligent Retrieval
> procedure.
> ' This procedure is called when a user enters information for a search
> on a
> ' account name
>
'***************************************************************************
***
>
> InitializeACC = False
>
> Set objCmd.ActiveConnection = cnConnection
>
> '--- Which Sushi Stored Procedure?
> objCmd.CommandText = "SUSHI_ESS_SBL_ZOEK_ACC_ZK.p_query"
> objCmd.CommandType = adCmdStoredProc
>
> '--- Mandatory input parameters
> objCmd.Parameters.Append
> objCmd.CreateParameter("pp_execution_code_in", adVarChar,
> adParamInput, 20, "")
> objCmd.Parameters.Append objCmd.CreateParameter("pp_AC_NAAM_1",
> adVarChar, adParamInput, 100, "")
> objCmd.Parameters.Append objCmd.CreateParameter("pp_ACCOUNT_ID_2",
> adVarChar, adParamInput, 15, "")
> objCmd.Parameters.Append objCmd.CreateParameter("pp_AC_STRAAT_3",
> adVarChar, adParamInput, 200, "")
> objCmd.Parameters.Append objCmd.CreateParameter("pp_AC_PLAATS_4",
> adVarChar, adParamInput, 80, "")
> objCmd.Parameters.Append
> objCmd.CreateParameter("pp_copy_acc_naam_5", adVarChar, adParamInput,
> 100, "")
> objCmd.Parameters.Append
> objCmd.CreateParameter("pp_copy_acc_straat_6", adVarChar,
> adParamInput, 200, "")
> objCmd.Parameters.Append
> objCmd.CreateParameter("pp_copy_acc_plaats_7", adVarChar,
> adParamInput, 80, "")
>
> '--- Output parameters
> objCmd.Parameters.Append
> objCmd.CreateParameter("pp_selection_id_out", adVarChar,
> adParamOutput, 10, "")
> objCmd.Parameters.Append
> objCmd.CreateParameter("pp_general_status_out", adVarChar,
> adParamOutput, 10, "")
>
> '--- Which values?
> objCmd("pp_execution_code_in") = strExecutionCode
> objCmd("pp_AC_NAAM_1") = strAccount
> objCmd("pp_AC_STRAAT_3") = strAddress
> objCmd("pp_AC_PLAATS_4") = strPCCity
>
> InitializeACC = True
> End Function
> Public Function InitializeCNT() As Boolean
> -----
>
> As you can see, only strings are entered so I don't see why regional
> settings should even be an issue.
>
> Hopefully someone can help.
>
> C ya!
>
> Marty
Received on Wed Nov 06 2002 - 23:12:15 CST

Original text of this message

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