Truncated Long Field

DLGL

Member²
We encounter a problem with PL/SQL developer when we retrieve a record with a long value if the length is greater than 2000 characters the field is truncated. If the sql return more than one record and the long field with 2000 characters is not the first one to be fetch the value is not truncated. I
 
As far as we know this is an Oracle Net bug, and we have not yet found a work around.

------------------
Marco Kalter
Allround Automations
 
Originally posted by DLGL:
We encounter a problem with PL/SQL developer when we retrieve a record with a long value if the length is greater than 2000 characters the field is truncated. If the sql return more than one record and the long field with 2000 characters is not the first one to be fetch the value is not truncated. I
 
Originally posted by SPLATT:
We are seeing this problem too. If you hit the refresh key, all data is returned. We can replicate the problem through a well known Oracle Access tool, though I do not know if they use DOA as well.

We have done searches on Oracles site and found no mention of this issue.

We have open a TAR at Oracle and they do not know this issue. So for Oracle the problem seem to come from PL/SQL Developper.
 
Originally posted by DLGL:
We have open a TAR at Oracle and they do not know this issue. So for Oracle the problem seem to come from PL/SQL Developper.

I have just tested this scenario out with the BDE and even that brings back all the LONG data.

I am not convinced that this is an Oracle problem!
 
Originally posted by SPLATT:

I have just tested this scenario out with the BDE and even that brings back all the LONG data.

I am not convinced that this is an Oracle problem!

We have found that if we only bring back the Long field in the select statement the field is not truncated.
 
I have just done some further testing. The table containing the LONG column also contains several columns defined as VARCHAR2(2000). If I select all fields, including the LONG, but excluding any of the VARCHAR2(2000) fields, the data in the LONG is not truncated. If one or more of the VARCHAR2(2000) columns are included, the LONG data is truncated, even though the VARCHAR2(2000) fields are empty!

Is there some sort of internal buffering going on here?
 
The data is read into a record buffer by Oracle Net. It seems that an error occurs for the LONG field when the buffer also includes one or more varchar2(2000) fields. However, from a Direct Oracle Access point of view there is nothing magic/special about a varchar2(2000) field.

I will give it another try to find a workaround.

------------------
Marco Kalter
Allround Automations

[This message has been edited by mkalter (edited 14 February 2003).]
 
We've found a workaround for this problem. It is caused by a Net8 bug, and setting TOracleSession.Preferences.UseOCI7 fixes it, though this is only applicable if you are not using any Net8 functionality (LOB's, Objects). We have also implemented a fix in Direct Oracle Access to work around the problem in Net8. A pre-release of this fix is available on request, just send me an e-mail.

------------------
Marco Kalter
Allround Automations
 
Back
Top