Oracle: “ORA-00936: missing expression”

May 14, 2007 – Dejan

U petak sam prebacivao kopiju production baze na test-server, ali sam uÄinio jedan pogreÅ¡an korak, zbog kojeg sam kasnije dobijao masu “ORA-00936: missing expression“ greÅ¡aka.

Gledam ja tako problematiÄne SELECT upite, koji uzrokuju exception sa tom greÅ¡kom i jednostavno ne vidim u Äemu je problem. Gledam, testiram ruÄno, pokrenem debugging u TOAD-u, odradim tracing, grizem se za usne, vrijeme prolazi … - niÅ¡ta sumnjivo.

Stvarno nikad ne bih uspio skontati u Äemu je fora, da mi jedan stariji i iskusniji Oracle DBA nije rekao:”To ti je sigurno zbog pogreÅ¡nih NLS podeÅ¡avanja!

I bio je u pravu… Na production bazi su NLS podeÅ¡avanja postavljena na Ameriku:

   NLS_LANGUAGE=’AMERICAN’
   NLS_TERRITORY=’AMERICA’

a na testnom serveru je postavljeno na NjemaÄku:

   NLS_LANGUAGE=’GERMAN’
   NLS_TERRITORY=’GERMANY’

tako da upiti sa TO_NUMBER i TO_DATE, koji sadržavaju masku za formatiranje, nisu radili kako treba i javljali su gorespomenutu grešku.

PoÄetniÄka greÅ¡ka … Da sam kopirao odgovarajuću init.ora datoteku sa ispravnim NLS podeÅ¡avanjima, ne bih imao ovaj problem…

No dobro, jos jedno iskustvo više. :)

Post a Comment