FEHLER ORA-00932: inkonsistente Datentypen: voraussichtlicher TERMIN habe NUMMER
Ich versuche, führen Sie die folgende sql-Anweisung für eine oracle-Datenbank:
UPDATE PARENT
SET RENEW_DATE = TO_DATE('08/31/' + EXTRACT(YEAR FROM JOINED), 'MM/dd/yyyy')
WHERE STATUS_IND = 'Active';
Ich gehe davon aus, dass um das Jahr Stück aus dem Feld " Beigetreten, die ein Datum im Format MM/dd/yyyy. Ich will das Endergebnis, oder den Wert, den ich einstellen um zu schauen wie '8/31/2015" zum Beispiel.
Jede Hilfe ist willkommen, ich habe versucht mehrere Dinge.
Was datatype
Ich entschuldige mich, das, was ich immer vor der ORA-00932, mit den oben genannten bin ich immer ORA-01722: ungültige Zahl
BEIGETRETEN ist vom Typ DATE
JOINED
?Ich entschuldige mich, das, was ich immer vor der ORA-00932, mit den oben genannten bin ich immer ORA-01722: ungültige Zahl
BEIGETRETEN ist vom Typ DATE
InformationsquelleAutor user3845574 | 2014-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
||
statt der+
Zeichen concatinate dem Datum zusammen."verketten Sie die Datum" ist so nicht ganz richtig. Sie verketten strings hier, nicht dates.
'08/31/'
ist zeichenliteral (aka "string") und die Anzahl zurückgegebenEXTRACT(YEAR FROM JOINED)
wird implizit in einen string umgewandelt, aufgrund der Art, wie es eingesetzt wird.Ahh ich sehe, was wenn ich hinzufügen müssen 1 Jahr im immer hier, oder fügen Sie 1, um das Jahr des Ergebnis Datum habe ich versucht, dieses
code
UPDATE ÜBERGEORDNETEN SATZ RENEW_DATE = DATEADD(YEAR, 1, TO_DATE('08/31/' || EXTRACT(YEAR FROM KAM) , 'MM/dd/yyyy')), WO STATUS_IND = 'Aktiv'code
Dies führt zu ORA-00904: "DATEADD": Ungültiger Bezeichner
DATEADD ist für SQL Server. In Oracle können Sie hinzufügen, Tage mit einem + oder fügen Sie ein Intervall wie "dateresult + interval '1' year. In deinem Beispiel könnte man auch um 1 Jahr vor der Verkettung mit dem rest des Datums.
InformationsquelleAutor Chris Barlow