Hello,
we have an database with a Oracle 9.2 Database
V$NLS_PARAMETERS:
NLS_LANGUAGE GERMAN
NLS_TERRITORY GERMANY
NLS_CURRENCY €
NLS_ISO_CURRENCY GERMANY
NLS_NUMERIC_CHARACTERS ,.
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-Mon-RRRR
NLS_DATE_LANGUAGE GERMAN
NLS_CHARACTERSET WE8MSWIN1252
NLS_SORT GERMAN
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY €
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
If I have an OracleClient installed which does not have in the regedit the NLS_LANG parameter set (DirectMode=false) then the special characters like 'öä'... are written wrong to the database. If I use only the OracleClient and also with devart in DirectMode=true, everything works fine
Regards
Hansjörg
Different behaviour between Oracle Client and Devart with DirectMode = false
-
- Posts: 39
- Joined: Wed 31 May 2017 14:33
-
- Posts: 39
- Joined: Wed 31 May 2017 14:33
Re: Different behaviour between Oracle Client and Devart with DirectMode = false
I don't understand what this has to do with my entry.
-
- Devart Team
- Posts: 2420
- Joined: Wed 02 Nov 2011 09:44
Re: Different behaviour between Oracle Client and Devart with DirectMode = false
When the OCI connection mode is used in dotConnect for Oracle, all the work with NLS Parameter is performed by Oracle Client. For more information, please refer to https://www.oracle.com/technetwork/prod ... 99431.html
You can use the "Run Once Command" connection string parameter to set the necessary NLS_LANG value. For example, add the following string to your connection string:
In the Direct mode NLS parameters are based on the regional settings of your Operating system.
You can also add "Unicode=true" to your connection string in both modes: Direct and OCI. In this case all special characters will be passed correctly.
You can use the "Run Once Command" connection string parameter to set the necessary NLS_LANG value. For example, add the following string to your connection string:
Code: Select all
"Run Once Command=ALTER SESSION SET NLS_LANGUAGE='German';"
In the Direct mode NLS parameters are based on the regional settings of your Operating system.
You can also add "Unicode=true" to your connection string in both modes: Direct and OCI. In this case all special characters will be passed correctly.
-
- Posts: 39
- Joined: Wed 31 May 2017 14:33
Re: Different behaviour between Oracle Client and Devart with DirectMode = false
If I use directly the OracleClient (System.Data.OracleClient) I have a different behaviour
-
- Devart Team
- Posts: 2420
- Joined: Wed 02 Nov 2011 09:44
Re: Different behaviour between Oracle Client and Devart with DirectMode = false
System.Data.OracleClient was deprecated a long time ago. We do not think that behavior of this provider should be a guideline.
When you use the OCI connection mode with dotConnect for Oracle, all the work is performed by Oracle Client, including applying the NLS Parameter.
When you use the OCI connection mode with dotConnect for Oracle, all the work is performed by Oracle Client, including applying the NLS Parameter.