Re: [cx-oracle-users] Problem with internal buffer sizes
Brought to you by:
atuining
From: Anthony T. <ant...@gm...> - 2007-01-23 17:59:58
|
On 1/23/07, matilda matilda <ma...@gr...> wrote: > Hi Anthony, > > thanks for your fast answer. But I really get used to it. :-)) > Probably you can remember me as I contacted you by private > mail the first time. So, you see, I follow your abuse and mail to > the mailing list. :-)) You're welcome. And yes, thanks for posting to the mailing list for the enlightenment (or confusion) of all. :-) > How can I circumvent this problem? How can I even manually increase > the buffers? You cannot, unfortunately. > As far as I know, sqlplus does really double the internal buffers > to do the communication for the following szenario: > DB character set is Latin1 => I can store a maximum of 4000 > German umlauts to the a string column. That results in 8000 > bytes on the client side if there is a multibyte encoding enabled. Hmm, that's worth trying, I suppose. Would you be able to provide a small test case that demonstrates the problem? Something that has 4000 characters in it which will actually result in considerably larger number of bytes. I can then try that and see if your assumption is correct. If it is, then the matter is fairly simple to address. > How is the buffer size chosen for simple varchar2 columns in > cx_Oracle? The database provides that information. Unfortunately, Oracle is not consistent in terms of whether bytes or characters are returned -- the problem of having developed much of the code before Unicode was very widespread. :-( > Best regards > Andreas Mock > > > > >>> "Anthony Tuininga" <ant...@gm...> 23.01.2007 17:24 > >>> > Currently only LOBs use the environment's "maxBytesPerCharacter" > specification. Unfortunately (as far as I know -- please correct me if > I am wrong) varchar2 buffers are limited to 4000 bytes and are > specified in bytes, not characters. So you may be able to get away > with increasing the buffer size for small strings but for large > strings bad things will start to happen. :-) I'm not sure if there is > a reasonable way around this or not. If anyone cares to enlighten me > I'd be happy to learn. Anyone?? > > On 1/23/07, matilda matilda <ma...@gr...> wrote: > > Hi all, hi Anthony, > > > > I have the following problem: > > > > The Oracle database I'm using has the internal encoding > > WE8ISO8859P1. The frontend (shell, python) has the > > default encoding UTF-8 (NLS_LANG=GERMAN_GERMANY.UTF8). > > The Oracle client library is handling encoding convertion, BUT: > > If I fetch a varchar2 (byte) column consisting of a character > > that is encoded with two bytes in UTF-8, I get the following > > error while fetching: > > > > cx_Oracle.DatabaseError: column at array pos 0 fetched with error: > > 1406 > > > > I think it's a problem with internal buffers of the bind variables. > > > > 1) What can I do to get rid of that without changing NLS_LANG? > > 2) Is there or probably will there a way to transparently circumvent > > this problem. (automatic claiming of bigger buffers). > > > > Thanks in advance > > Andreas Mock > > > > > > > > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > > opinions on IT & business topics through brief surveys - and earn > cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > _______________________________________________ > > cx-oracle-users mailing list > > cx-...@li... > > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > cx-oracle-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-oracle-users > |