Folgendes kurioses Problem habe ich. Ich habe ein kleines Programm geschrieben welches einen SQL-Befehl ausführt und das Ergebnis wegspeichert. Der SQL-Befehl kommt aus einer anderen Software, und das ganze dient an einer bestimmten Stelle zur Automatisierung. Das Programm ist für die Kommandozeile erstellt {$APPTYPE CONSOLE}, da ich vor habe das ganze in ein kleines Script zu packen.
Das Problem welches jetzt auftaucht ist, dass zwar viele SQL-Befehle klappen, manche jedoch nicht. Wobei die die nicht klappen direkt aus Delphi heraus dann doch funktionieren. Es scheint also ein Problem durch die Konsole (c:\windows\system32\cmd.exe, Windows XP SP3) zu entstehen.
Beispiel:
Das SQL (siehe Beispiel) funkioniert über mein Programm wenn ich es mittels F9 starte. Jedoch nicht wenn ich es per Konsole (cmd) ausführe. Wenn ich eine Verknüpfung unter Windows erstelle, welche das Programm per cmd/c aufruft, klappt es erstaunlicherweise wieder. Wobei generell in der DOS-Box andere SQL-Befehle wiederum klappen.
Fehlermeldung:
EOleException [Oracle][ODBC][Ora]ORA-00904: Ungültiger Spaltenname
Detaillierter:
EOleException [Oracle][ODBC][Ora]ORA-00904: Ungültiger Spaltenname
Source: Microsoft OLE DB Provider for ODBC Drivers
Error Code: -2147217900 [80040E14]
Facility: ITF Code: 4
Hier der SQL-Befehl:
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| SELECT ATKO05.NR_VT NR_VT05 , SUM(RAAT04.GES_WERT_RAAT*IS_GREATER(ATKO05.NR_VGART ,100)*IS_LESS(ATKO05.NR_VGART ,110)+(RAAT04.GES_WERT_RAAT*-1)*IS_GREATER(ATKO05.NR_VGART ,109)*IS_LESS(ATKO05.NR_VGART ,120)) EXPR , RALF06.BU_DATUM_RALF BU_DATUM_RALF06 FROM RAAT RAAT04 , ATKO ATKO05 , RALF RALF06 WHERE RAAT04.NR_ATKO_RAAT = ATKO05.NR_ATKO AND RALF06.NR_RALF = RAAT04.NR_RALF AND RALF06.BU_DATUM_RALF >= to_date('01.04.2007','dd.mm.yyyy') AND ATKO05.ST_RA_ATKO = 602 AND ATKO05.ST_ATKO != 130 AND ATKO05.NR_VT IN ('2','4','43','44') GROUP BY ATKO05.NR_VT, RALF06.BU_DATUM_RALF ORDER BY 1, 3 |