Re: ORA-01722

From: Alex Filonov <afilonov_at_yahoo.com>
Date: 12 Apr 2002 08:09:07 -0700
Message-ID: <336da121.0204120709.13f6368e_at_posting.google.com>


forlist2001_at_yahoo.com (kumu) wrote in message news:<a44abd39.0204111158.3146deb_at_posting.google.com>...
> Thank you Alex. I tried the instructions you gave and it is returning
> for select 3/2 from dual value as 1.5 so the delimiter is (.) I will
> try the registry also but its the problem with all the number so... :)
> . I also have turned the application settings to put (,) as decimal
> delimiter and it seems to work but now problem is Win 2000 does not
> work... I am like confused why Win2K will work other way than WinNT.
> Thanks Alex once again
> Kumu

  1. Have you tried select 3/2 from dual from the same machine your application is running on? Oracle uses client settings to detect NLS parameters.
  2. If your application works with (,) as a delimiter, apparently it uses different NLS settings than sqlplus. Strange...
  3. Win2K may work differently from WinNT because registry is different. Or may be because your application settings are different. By the way, how is you application connected to Oracle? Through SQL*Net or ODBC?

>
> afilonov_at_yahoo.com (Alex Filonov) wrote in message news:<336da121.0204081023.787ca85e_at_posting.google.com>...
> > forlist2001_at_yahoo.com (kumu) wrote in message news:<a44abd39.0204050816.3a553613_at_posting.google.com>...
> > > I checked the SQL query fired by the application and it has 4.5000 in
> > > the sql insert statement. Only thing I am not to sure about is because
> > > it is a mixed environment is OS changing/ interpreting Query
> > > differently...
> > > :)
> >
> > I have an idea. What's value of NLS_LANGUAGE on your NT machine? You
> > can find it in registry HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE. Check
> > also if there is NLS_NUMERIC_CHARACTERS over there. It just might
> > happen that 4.5000 is an illegal number for your NLS settings. For
> > example, if decimal delimiter is comma (,) instead of dot (.)
> > If you have sqlplus on your NT machine, you can do a quick check:
> > select 3/2 from dual
> > It will print 1.5 for american locality (second word in NLS_LANGUAGE),
> > but for some localities it prints 1,5. You'll find out your decimal
> > delimiter on NT machine.
> >
> > >
> > > afilonov_at_yahoo.com (Alex Filonov) wrote in message news:<336da121.0204032050.6ad8b531_at_posting.google.com>...
> > > > forlist2001_at_yahoo.com (kumu) wrote in message news:<a44abd39.0204021306.608e03b2_at_posting.google.com>...
> > > > > I have a Sun Solaris machine with Oracle 8.1.7.2 database and I am
> > > > > accessing it from the windows NT workstation French version. The
> > > > > application I am using is unable to populate the numeric fields in
> > > > > Oracle its generating ORA-01722 Error. The same application works fine
> > > > > in other scenario Do you have any suggestion what might be potential
> > > > > problem.
> > > > >
> > > > > Thanks a lot
> > > > > Kumu
> > > >
> > > > I bet your application puts character data into numeric fields. Oracle
> > > > can handle it if it can convert them into numbers. If not (they are
> > > > null, for example), you get 1722.
Received on Fri Apr 12 2002 - 17:09:07 CEST

Original text of this message