Bug in Oracle Client

G

Guest

I am using oracle client. Simply filling a dataset with oracle dataAdapter.
But in dataset some rows are corrupted. It is replacing last few characters with "\0
The same code works fine if i use OleDbClient. Again the same code works fine with Windows2000 serve
but gives the same problem on windows2003 server and windows2000 professional editions.
Help me in finding out the reason adn solving the problem

Thank
Arun
 
A

Angel Saenz-Badillos[MS]

Not sure if this applies to you, read on if your Oracle server is set to
UTF8:


If you are using UTF8 the problem is not that you are receiving corrupted
data , the problem is that you are inserting invalid utf8-data. It is
fairly simple to insert invalid utf8 data into Oracle since sqlPlus needs to
be properly configured and older providers like our MSDAORA do not provide
unicode support
http://support.microsoft.com/default.aspx?scid=KB;EN-US;244661


To verify this you can try the following:

Insert into EMP (Empno, Ename) values (1000, 'àèé')

Once you have done this with both the Oracle managed provider and either
sqlplus or msdaora you can get the real values stored in the database like
this:

select dump(ename, 1016) from emp;

DUMP(ENAME,1016)

----------------------------------------------------------------------------
----

Typ=96 Len=10 CharacterSet=UTF8: e0,e8,e9,20,20,20,20,20,20,20 //invalid
utf-8 value inserted with msdaora

Typ=96 Len=10 CharacterSet=UTF8: c3,a0,c3,a8,c3,a9,20,20,20,20 //àèé
inserted with Oracle managed provider.

If you have entered invalid utf8 data into your database with a non unicode
provider then you can only read the data out with a non unicode provider.
Switching to ODP.net will not solve your problem.
Hope this helped,
 
G

Guest

Thank
Actually i resolved the same problem by installing proper version of oracle client. The problem was that server version was 8.1.7 and i was using client version 8.1.5
I am also going to look at the UTF-8 issue coz i need to see why there are such issues in oracle clients
Thanks again for giving me clue
- Aru

----- Angel Saenz-Badillos[MS] wrote: ----

Not sure if this applies to you, read on if your Oracle server is set t
UTF8


If you are using UTF8 the problem is not that you are receiving corrupte
data , the problem is that you are inserting invalid utf8-data. It i
fairly simple to insert invalid utf8 data into Oracle since sqlPlus needs t
be properly configured and older providers like our MSDAORA do not provid
unicode suppor
http://support.microsoft.com/default.aspx?scid=KB;EN-US;24466


To verify this you can try the following

Insert into EMP (Empno, Ename) values (1000, 'àèé'

Once you have done this with both the Oracle managed provider and eithe
sqlplus or msdaora you can get the real values stored in the database lik
this

select dump(ename, 1016) from emp

DUMP(ENAME,1016

---------------------------------------------------------------------------
---

Typ=96 Len=10 CharacterSet=UTF8: e0,e8,e9,20,20,20,20,20,20,20 //invali
utf-8 value inserted with msdaor

Typ=96 Len=10 CharacterSet=UTF8: c3,a0,c3,a8,c3,a9,20,20,20,20 //àèÃ
inserted with Oracle managed provider

If you have entered invalid utf8 data into your database with a non unicod
provider then you can only read the data out with a non unicode provider
Switching to ODP.net will not solve your problem
Hope this helped
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top