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
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
habe jetzt alles mit to_char umgewandelt und jetzts gehts auch wieder unter solaris

