Skip to Main Content
  • Questions
  • problem with a few chjaracters in JAVA / JDBC that cant be converted from source 9i solaris DB to a 12c linux system

Breadcrumb

Question and Answer

Chris Saxon

Thanks for the question, Siegfried.

Asked: August 23, 2016 - 7:57 am UTC

Last updated: August 23, 2016 - 4:14 pm UTC

Version: 9i

Viewed 1000+ times

You Asked

Hello Tom,

1.what is the right superset for WE8DEC??

2. what OS charset (say I would it set in my java program) should by set if I want to read varchar fields and write them in a new varchar field?


Apart from this they received "ORA-29345: cannot plug a tablespace into a database using an incompatible character set" during import" with:

source chatset is WE8DEC and target charset is WE8MSWIN1252
Also, same behavior with source in WE8DEC and target in AL32UTF8.
what we want really manage read from 9i Solaris AL16UTF16/WE8DEC to 12c OL AL16UTF16/WE8MSWIN1252

3.
but tzhe probelm with JAVA / JDBC ist also there if we use 9i DB as source ans target ?
example
ANAME
----------------------------------------------------------------------
HEGYALJA HÞS

SQL> select SC11_ANAME FROM sync_cbig_liste11 where SC11_TS_ID=11141 AND SC11_BU_BUCH_DAT = 20091104 AND SC11_BW_PAGENR=11190;

SC11_ANAME
----------------------------------------------------------------------
HEGYALJA H¿S

BR
Siegfried

and Chris said...

You have two problems here:

- The databases have different charactersets
- Solaris and Oracle Linux have different endianness (big and little respectively)

Cross platform tablespace migration is possible... but you have to be on 10g to do this!

https://oracle-base.com/articles/10g/rman-enhancements-10g#cross_platform_tablespace_conversion

So as you're going from 9i -> 12c, export/import is the way to go.

When it comes to the characterset conversion things start to get interesting...

WE8MSWIN1252 is a superset of WE8DEC. But it's not a strict superset! Some characters have different codes.

It's also possible to misuse WE8DEC and store characters that don't actually exist in this characterset:

Comparing WE8DEC to WE8MSWIN1252, then these 1252 characters are not known in WE8DEC:
¦¬­®¯´¸¾ÐÞð÷×þ €‚ƒ„…†‡ˆ‰Š‹Ž‘’“”•–—˜™š›ž


Note þ - this looks like one of your problem characters...

Check the source data by connecting with SQL Developer. If the characters appear there OK, everything's good. If they don't, you've got a problem!

MOS note 1104893.1 explains in detail the process of converting from WE8DEC > WE8MSWIN1252. Have a read of this, it should help you sort out the what you're doing.



Is this answer out of date? If it is, please let us know via a Comment