OracleSession cannot connect if NLS_LANG changes

nazgulx

Member
Hello
I have strange behaiour with DOA 3.3 and Kylix. When I have no NLS_LANG in my env sets then I can connect to database with no problem. But I have a data which contain Polish characters and instead of them I see their versions without any accents. Instaead of Polish a' I get a... and so on. So my idea was to set NLS_LANG=POLISH_POLAND.EE8ISO8859P2. After that I can see polish caracters from sqlplus but with DOA I even can't connect to database. Session.Connect:=True raises exception:

ORA-00604: error occurred at recursive SQL level 1
ORA-00911: invalid character

Thanks for any help...
Kylix2 Enterprise
bpldoa34k2.so
Linux Redhat 8
Oracle client 9 connecting to Oracle 9 database
 
Does this also happen when you use a TOracleSession with only default property settings (except for the Logon properties of course)?

------------------
Marco Kalter
Allround Automations
 
Yes. The only change I did was to provide logon information.

Meanwhile I made some more experiments and it appears that problem is more curious.

When I set nls_lang=POLISH_POLAND.UTF8 I can connect but select from table gives exception

ORA-01406: fetched column value was truncated

I did some experiments with session's character size.. 1,2, auto.... no luck wrror still there.

So in my desperate move I decided... well what are Polish Oracle messages for? Let's do it in LANG=AMERICAN_AMERICA.EE8ISO8859P2 and guess what? I can connect, but whenever I fetch field which contains Polish character I get null value into grid for that.

So as for now I don't have a workaround...
 
Your first error indicates some low level problem:

ORA-00604: error occurred at recursive SQL level 1
ORA-00911: invalid character

It indicates that some internal (!) Oracle SQL statement generates an ORA-00911. I did some searches on Oracle MetaLink, but I can't find any similar problem yet.

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