-
Quoted string not properly terminated
Hello,
I am runnig Oracle 8.1.7 on NT4. When I created database I set charachter set to UTF8.
On NT4 the value of NLS_LANG is AMERICAN_AMERICA.UTF8.
Ok lets move to client machines.
Let just say that I have table TEST which has one field TEXT VARCHAR2(5).
I am going to use some of our nacional charachters (Slovenia), hope you will be able to see them.
On clients the NLS_LANG parameter is set to SLOVENIAN_SLOVENIA.UTF8
I was executing this command :
insert into test values (sometext);
And results where :
If sometext was string without any our nacional charachters there is no problems.
Problem occurs if I use in sometext string charachter è. For example
sometext = 'kaèa'. Then I get error ORA-01756: quoted string not properly terminated.
What is interesting if after charachter è there is an a,e,i,o,u and after that again one of our nacional charachter which is not è, then insert statment exectues ok.
For example sometext = 'kèaš' --> 1 row created.
What I tried next is setting NLS_LANG (on client) to SLOVENIAN_SLOVENIA.EEMSWIN1250.
Then I could use all of our charachters, but (there is always but)!
It looks like that every nacional charachters now requreis two places in string. If field is VARCHAR2(10) and I try to insert string with five our charachters plus one additional (sometext = 'šðèæžh') then I get message : ORA-01401: inserted value too large for column.
P.S. On server NLS_LANG must be set to UFT8, becouse clients can be in very diffent languages. (slovenian,bulgarian,english,turkish,croatian,...)
-
I think your problem is in you Windows NT, naimely: you have to change default location and character set of your PC to Slovenian.
When i do that i can type even in Japanese and save any data i want, but if i dont do that i am getting the same error as you.
Best wishes!
Dmitri
-
I've changed regional setting on NT4 to slovenian, but I keep getting the same errors.
-
Did you do it on station you are connecting from?
Or did you do it on the Server site?
Best wishes!
Dmitri
-
I've changed it on server side.
Then I started SqlPlus on serves side with nls_lang values american_america.utf8 and to
slovenian_slovenia.utf8
still there was quoted string...
Then I changed it to
american_america.ee8mswin1250 and to
slovenian_slovenia.ee8mswin1250
inserted value to long
P.S.
My machine from where I am connection the regional setting are
Location : Slovenian
Language (checked) : Central Europe (default), Cyrilic, Western Europe and United States.
Is the problem with the language selection?
P.S. Slovenian language is part of CE
-
On my computer I have W2K.
-
Yes, you have to change default language as well.
Best wishes!
Dmitri
-
Make default language SLOVENIAN.
Originally posted by Aljaz
My machine from where I am connection the regional setting are
Location : Slovenian
Language (checked) : Central Europe (default), Cyrilic, Western Europe and United States.
Is the problem with the language selection?
P.S. Slovenian language is part of CE
Best wishes!
Dmitri
-
From what I can see I have then sistem regional settings set to slovenian, plus I have the dafault sistem locale set to slovenian and also the default OS locale. I have everything that is possible set to slovenian. My windows are in english language if this plays a role.
If helps this what I get if I guery nls_session_parameters and nls_instance_parametres tables
select * from nls_session_parameters;
PARAMETER VALUE
----------------------------- -----
NLS_LANGUAGE SLOVENIAN
NLS_TERRITORY SLOVENIA
NLS_CURRENCY SIT
NLS_ISO_CURRENCY SLOVENIA
NLS_NUMERIC_CHARACTERS ,.
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD MM YYYY HH24:MI:SS
NLS_DATE_LANGUAGE SLOVENIAN
NLS_CHARACTERSET UTF8
NLS_SORT SLOVENIAN
NLS_TIME_FORMAT HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT DD.MM.RR HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD.MM.RR HH24:MI:SSXFF TZH:TZM
NLS_DUAL_CURRENCY SIT
NLS_NCHAR_CHARACTERSET UTF8
NLS_COMP BINARY
select * from nls_instance_parameters
PARAMETER VALUE
----------------------------- ----------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_SORT
NLS_DATE_LANGUAGE
NLS_DATE_FORMAT
NLS_CURRENCY
NLS_NUMERIC_CHARACTERS
NLS_ISO_CURRENCY
NLS_CALENDAR
NLS_TIME_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_DUAL_CURRENCY
NLS_COMP
-
Slovenian charset is ISO8859-2,
NLS_LANG=slovenian_slovenia.EE8ISO8859P2
I do not know already what is wrong, when I changed English Windows to be Japanese, I could use UTF8 charset as client charset.
Slovenian is a language of Easten Europe BUT NOT Central Europe.
You wrote:
Language (checked) : Central Europe (default), Cyrilic, Western Europe and United States.
Is the problem with the language selection?
P.S. Slovenian language is part of CE
Best wishes!
Dmitri
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|