RE: nls_length_semantics anyone see this before (repeat e-mail)

  • From: "Jacques Kilchoer" <Jacques.Kilchoer@xxxxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 21 May 2004 12:39:36 -0700

You could change your DDL to always explicitly specify byte or char,
e.g.
create table test (v1 varchar2 (10 char)) ;
Or
create table test (v1 varchar2 (10 byte)) ;
My opinion is that the explicit specification is the safest approach in
the long run.

Thank you for informing the list of the bug.

-----Original Message-----
Fuad Arshad

yes,
thats true but as we just found out this is a BUG
the description is as below and as helpful as oracle always is its not
fixed till 10gR2
 [BUG:1488174] UNICODE: ALTER SYSTEM SET NLS_LENGTH_SEMANTICS DOESN'T
TAKE EFFECT
(this is an internal bug, sorry)
 Fixed Ver(s): will not be fixed before 10g R2
 Testcase:
     alter system set nls_length_semantics='CHAR'
     create table test(v1 varchar2(10));
   it should be 10 character, but actually, it is 10 BYTE;
 Workarounds: 
   alter session, or set the parameter in the init.ora.
 Problem: 
   ALTER SYSTEM does not change the current session's setting of
   NLS_LENGTH_SEMANTICS, at least not in the opinion of DDL.
 Workaround: Don't use ALTER SYSTEM SET NLS_LENGTH_SEMANTICS ...
 Both init.ora parameters and alter session work OK.



----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: