Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

SQL + Oracle + Solaris





Frage

Hallo, habe ein Problem mit dem folgenden SQL-Statement: select SYMBOLICNAME ||','|| MANAGEDOBJECTCLASS ||','|| MANAGEDOBJECTINSTA ||','|| EVENTTYPE ||','|| to_char(EVENTTIME, 'DD.MM.YYYY HH24.MI.SS') ||','|| PERCEIVEDSEVERITY ||','|| ERRORIDDESCR ||','|| ACKNOWLEDGETIME ||','|| ACKNOWLEDGEUSERNAM ||','|| ALARMCATEGORYLEVEL from "OMCDBSYS"."ALARMLOG", (select "OMCDBSYS"."SPECIFICPROBLEMS"."ERRORID", "OMCDBSYS"."SPECIFICPROBLEMS"."ERRORIDDESCR" from "OMCDBSYS"."SPECIFICPROBLEMS") where ("OMCDBSYS"."ALARMLOG"."EVENTTIME" like SYSDATE) and ("OMCDBSYS"."ALARMLOG"."SPECIFICPROBLEMS" = "ERRORID") order by EVENTTIME; Wenn ich es vom Windows SQLPlus an die Datenbank (Oracle auf Solaris) schicke, funktioniert sie einwandfrei und liefert mir einige Datensätze. Wenn ich sie unter dem Solaris SQLPlus starte, werden keine Datensätze mehr zurückgegeben. Der Fehler muß in der Where-Bedingung bei der Bedingung die das Sysdate prüft erfolgen. Ohne diese Bedingung funktioniert die Abfrage auch unter Solaris.

Antwort 1 von hendrikw

Das dürfte mit dem like zusammenhängen.
Like kann man nur auf Character-Datentypen anwenden und nicht auf datetime bzw. timestamp u.a.
Da wirst Du Dir schon eine andere Möglichkeit ausdenken müssen, um die Logeinträge auf die des aktuellen Tages zu beschränken (evtl. EVENTTIME >= to_date(to_char(SYSDATE,...)) mit geeigneten Konvertierungsparametern, damit heute 0:00 Uhr raus kommt.
mfg
Hendrik

Antwort 2 von Mike Hinz

Danke,

habe jetzt alles mit to_char umgewandelt und jetzts gehts auch wieder unter solaris