# ORA-01036: Variablenname/-nummer ungültig



## ARadauer (28. Nov 2007)

Hallo ich bekomme beim absenden eines Prepared Statements an eine Oracle DB folgende Fehlermeldung:

ORA-01036: Variablenname/-nummer ungültig

Ich benutze jedoch keine Variablennamen und keine Nummern!?!?



> SELECT hz.kdnr AS HDLNR, hz.fabfab AS fabfab, hz.zmgmg, SUM(hz.hzziel) AS HZZIEL FROM nwthz hz JOIN NWTVFAB vfab ON
> (vfab.vfabfab = hz.fabfab) WHERE vfab.fabfab =  'V'  AND hz.hzjahr =  '2007'  AND hz.kdnr IN ( 200) GROUP BY hz.kdnr, hz.fabfab,
> hz.zmgmg ORDER BY hz.kdnr, hz.fabfab, hz.zmgmg


das wird konkret an die datenbank gesendet, ich habs mit SQL Monitor mitgeloggt. Wenn ich den Query in Toad ausführe funktioniert er.

komm auch nach google recherche auf keinen grünen zweig.
das Prepared Statement ist frisch erstellt und die Parmater sind gesetzt.

hat jemand eine idee?



ps: das jahr unter ' ' steht und das die tabellen spalten und namen schrecklich heißen ist seit 20 jahren so. man kämpft da als neuer mitarbeiter gegen windmühlen. "das haben wir immer so gemacht"  ???:L


----------



## ARadauer (28. Nov 2007)

das problem ist, ich habe morgen und übermorgen urlaub! ich lass so ein problem sicher nicht über ein verlängertes wochenende liegen. da es mich dann die ganze zeit beschäftigt!!


----------



## DocRandom (28. Nov 2007)

..sollte ich mich irren, nicht böse sein, aber gehört nicht bei einem *GROUP BY*, dann ein *HAVING* anstatt *ORDER BY* ?

lg
DocRandom


----------



## Guest (28. Nov 2007)

Hast du es durch einen Obfuscator gejagt? Selten so nichtsagende Tabellen- und Spaltennamen gesehen.
Gehe es einfach systematisch durch und entferne Abschnittweise alles, was syntaktisch nicht zwingend 
notwendig ist.

z.B. (Kommt immer noch der Fehler, unabhängig davon, ob es korrekte Daten liefert?)
	
	
	
	





```
SELECT hz.kdnr --AS HDLNR
--       ,hz.fabfab AS fabfab
--       ,hz.zmgmg
         ,SUM(hz.hzziel) -- AS HZZIEL
  FROM nwthz hz
       JOIN NWTVFAB vfab ON (vfab.vfabfab = hz.fabfab)
 WHERE vfab.fabfab = 'V'
   AND hz.hzjahr = '2007'
   AND hz.kdnr IN ( 200)
 GROUP BY hz.kdnr --, hz.fabfab, hz.zmgmg
-- ORDER BY hz.kdnr, hz.fabfab, hz.zmgmg
```


----------

