Oracle NVL-Funktion nicht erlaubt zweiten parameter als datetime
select nvl(trunc(null),trunc(sysdate)) from dual;
Beim ausführen der Abfrage erhalte ich folgende Fehlermeldung
ORA-00932: inconsistent datatypes: expected NUMBER got DATE
Aussehen, wenn ich einen string oder eine Zahl anstelle von trunc(sysdate)
es gut laufen.
NVL()
haben muss, um ähnliche Datentypen als argument!- Haben Sie gerade versucht
TRUNC(NVL(yourcolumn,SYSDATE))
.. Das wäre die saubere Lösung. - ja das funktioniert auch, danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom hier:
oder kann man dies so tun:
select nvl(trunc(pd_eftv_to),trunc(sysdate)) from dual;
select nvl(TO_DATE(trunc(pd_eftv_to)),TO_DATE(trunc(sysdate))) from dual;
Den zweiten parameter müssen vom gleichen Datentyp wie der erste parameter. Die
trunc
Funktion überlastet ist. Offenbar, wenn Sie es übergebennull
es interpretiert den Wert als eine Zahl und eine Zahl zurückgibt. Eines der folgenden Werke:Follow-up:
Wenn die variable, die verwendet wird ist korrekt definiert ist als Datum, dann sollten Sie nicht ein problem haben. Als ein Beispiel, die folgenden ohne Fehler ausgeführt wird:
Um eine Antwort zu bekommen, die tatsächlich Ihr problem löst, würde ich empfehlen die Bearbeitung der Frage, die code enthalten, die tatsächlich das problem veranschaulicht.
select nvl(trunc(pd_eftv_to),trunc(sysdate)) from dual;