Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Unicode

156844Nov 7 2011
We have two versions of the same database, one that uses a Latin characterset, the other AL32UTF8.

Our client uses Microsoft's ADO stack, and we see a difference in payload size when retrieving data through the Oracle OLE DB provider.

My assumption is that this is due to the documented behavior of the OLE DB Provider where:

OraOLEDB works in two modes, Unicode mode and non-Unicode mode. When the client character set is not a superset of the server character set, OraOLEDB automatically enables the Unicode mode. In this mode, OraOLEDB stores the data in its cache in the UCS2 encoding scheme. The user should ensure that the database's character set is UTF8 in order to prevent any data loss.

If the client character set is a superset of the server's, the provider operates in the non-Unicode mode. This mode provides slightly better performance as it does not have to deal with larger character buffers required by the UCS2 encoding.

Anyone know a way to work around this ? I am looking for a consistent sizing of single byte characters in both environments - my observation that the UTF16 representation doubles my payload.

Any insight appreciated - thanks.

Comments

Processing
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Dec 5 2011
Added on Nov 7 2011
0 comments
107 views