Author |
Message
|
jbanoop |
Posted: Wed May 31, 2006 2:35 am Post subject: How to insert Arabic data into Oracle Databse |
|
|
Chevalier
Joined: 17 Sep 2005 Posts: 401 Location: SC
|
Hi all,
What should i do to insert Arabic data in to Oracle database
Urgent.
Thanks,
nmaddisetti. |
|
Back to top |
|
 |
sourdas2 |
Posted: Wed May 31, 2006 2:50 am Post subject: |
|
|
 Voyager
Joined: 21 Apr 2006 Posts: 90 Location: Kolkata,India
|
If your OS and oracle version supports arabic data then you can insert it by inser statement. Just check your OS and database functionality. _________________ Thanks and Warm Regards
Sourav |
|
Back to top |
|
 |
jbanoop |
Posted: Fri Jun 02, 2006 4:45 am Post subject: |
|
|
Chevalier
Joined: 17 Sep 2005 Posts: 401 Location: SC
|
Hi Sourav,
Our database is arabic enabled (character set is 1256) and our OS is win XP (arabic is enabled).
Things tried are as follows:
* Retrieved the arabic data from XML input message and tried casting it with the CCSID s 1256,740,864,53,52 and then inserting. After that reading from the same field in DB and writing it out to a queue. read the data from the queue using RFHUTIL and pasted into an HTML page and it whose encoding is set to arabic/unicode and it shows up as gibberish.
* Tried inserting arabic data directly into the DB (oracle 9i) externally. Now from message flow, reading the database field and casted into Char with above mentioned CCSIDs (i mean tried one by one). output written to queue and read using rfhutil/mq explorer .. still showing junk.
* Tried setting CCSID conversion on MQ input node receiving input XML having arabic (setting it to 1208/1256). MQInput thowing error.
* Tried retrieving the arabic tag and cast it to blob using CCSID 1208/1256 and inserting to DB. When reading cast back to Char with same CCSID. No use.
* tried changing MQMD.CodedCharSetId to 1208/1256 programatically in compute node before accessing input XML. No use.
I am kind of running out of ideas and this issue is putting serious doubt on MB support for arabic here. I feel that there is something that is being overlooked or not set correctly. If anyone has worked on making MB work with any other languages , the inputs would be greatly appriciated.
Hope somebody will respond.
Regards,
Anoop |
|
Back to top |
|
 |
PieterV |
Posted: Fri Jun 02, 2006 5:10 am Post subject: |
|
|
Disciple
Joined: 04 Jan 2006 Posts: 164 Location: Belgium
|
Did you looked at the data after inserting in the DB with another tool, eg Toad? The data might be well inserted into the DB, and it goes wrong with reading the data from the DB. |
|
Back to top |
|
 |
jbanoop |
Posted: Fri Jun 02, 2006 6:39 am Post subject: |
|
|
Chevalier
Joined: 17 Sep 2005 Posts: 401 Location: SC
|
Hi ,
Thanks guys for the suggestions...
To add to the trials i did:
* tried adding trace nodes to see the mesaage content. The content I see matches the crap in the DB.
* tried retreiving the DB value from oracle tool and putting the same in HTML page. Gives same prob.
Now working on creating a message set with the tags that can have arabic data to be of data type byte. Then insert it into DB by converting it to char with CCSID 1256.
Anybody tired this with any luck ??
Regards,
Anoop |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jun 02, 2006 7:18 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You say that Arabic is enabled on XP. I assume you mean that the broker is running on an XP machine that has an Arabic language feature installed.
I have seen issues on other platforms with other character sets and oracle databases. The resolution in that case was to make sure that the NLS_LANG environment variable was set to *something* in the current environment of the application doing the database inserts.
HOWEVER.
You say
Quote: |
tried adding trace nodes to see the mesaage content. The content I see matches the crap in the DB. |
That means that either the data is getting "corrupted" when Broker parses it, or it is already corrupted on the queue in the first place.
So stop your broker flow, submit a message, and use amqsbcg to look at the input data before broker sees it. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jbanoop |
Posted: Sat Jun 03, 2006 3:24 am Post subject: |
|
|
Chevalier
Joined: 17 Sep 2005 Posts: 401 Location: SC
|
Hi,
Fixed the issue with a workaround (not exactly a solution though). We are casting the arabic string into BLOB with CCSID 1208 ans storing it to the DB in a BLOB field.
The same field when read, is coverted back to character using encoding 1208. This seems to do the trick.
There is an opinion floating around that the oracle driver that IBM recommends for Oracle does not support arabic characters fully.
Wonder if there is any truth in the same???
Hope this would help anybody else in future who comes across this problem .. Cause it took up quite a bit of our time here .. that too during QA testing.
Thanks to all of you for your ideas.
Regards,
Anoop |
|
Back to top |
|
 |
|