How can i do that?

rpc

Member
Hi all,
We have a problem with DOA.
We have Oracle 9i database with many tables. Some tables have varchar(4000) columns & use there many characters like "ř
 
When I run PL/SQL developer and execute same SQL containg varchar2 variable, the PL/SQL developer do SQL correctly.
Same SQL executing with using D.O.A. it is incorrect.

DOA return error from Oracle, that the string in variable isn't terminated by zero character.
 
Error result returned by DOA from Oracle:

ORA-01480: trailing null missing from STR bind value

TOracleSession.BytesPerCharacter = bcAutoDetect,
code is UTF-8 & string length is more than 1333 characters.
 
As you probably know, PL/SQL Developer uses Direct Oracle Access as well. What version of Direct Oracle Access are you using?
 
Okay. Can you check if TOracleSession.BytesPerCharacter is set to bcAutoDetect? Can you also let me know if PL/SQL Developer and your Direct Oracle Access application are using the same Oracle Home?
 
Yes, TOracleSession.BytesPerCharacter is bcAutoDetect.

PL/SQL using same Oracle Home as DOA - It's same PC, same user profile, same database...

Function MaxVarchar return 1333 characters, because CharacterSize (autodetected by GetBytesPerCharacter) is 3 and UseOCI80 is true.

But 1333 isn't correct max len :o (
 
I am using DOA 4.0.5, and still encountering this problem. It appears that DOA isn't correctly truncating the string as it should be (when using its worst-case estimates on string length).

When can we see this fixed? In particular, I would want to see more accurate estimates based on variable-length encoding, which is very common. Otherwise, one should be able to turn this feature off and let Oracle handle it.
 
Back
Top