Oracle: “ORA-00936: missing expression”

Monday, 14.05.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