Datum format Bild endet vor der Konvertierung gesamten Eingabe-string Fehler
Habe ich dieses Verfahren:
create or replace Procedure return_rows_LECTURE_BY_DATE (in_date in date, out_cursor OUT SYS_REFCURSOR) As
Begin
OPEN out_cursor for
select *
FROM COURSE_LECTURE
WHERE LECT_DATE_TIME_START >= to_timestamp(in_date, 'dd-mm-yyyy')
and LECT_DATE_TIME_START < to_timestamp(in_date+1, 'dd-mm-yyyy')
ORDER BY LECT_DATE_TIME_START;
End;
Eingang: Datum Ausgang: Vorträge an diesem Tag.
Die Daten in der Tabelle (view) ist TIMESTAMP.
Möchte ich diese Prozedur ausführen. Ich versuchte dies:
declare
k SYS_REFCURSOR;
--t DATE:= to_date('2010-12-14:09:56:53', 'YYYY-MM-DD:HH24:MI:SS') ;
res COURSE_LECTURE%rowtype;
begin
return_rows_LECTURE_BY_DATE(to_date('2010-12-14', 'YYYY-MM-DD'),k);
loop
FETCH k into res;
Exit when k%notFound;
DBMS_OUTPUT.PUT_LINE(res.COURSE_NAME );
end loop;
end;
Aber bekam ich diese Fehlermeldung:
Fehler-Bericht - ORA-01830: Datum format Bild endet vor der Konvertierung
gesamten Eingangs-string ORA-06512: at "HR.RETURN_ROWS_LECTURE_BY_DATE",
line 4 ORA-06512: at line 6
01830. 00000 - "date format Bild endet vor der Konvertierung gesamten Eingabe-string"
InformationsquelleAutor user3868442 | 2014-07-25
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie konvertieren Sie das Datum in einen timestamp verfügt, wird durch die Verwendung
TO_TIMESTAMP()
, die eine Zeichen als parameter. Sie verwenden sollten,CAST()
statt, was wandelt einen Datentyp in einen anderen; zum Beispiel:Sollten Sie tun dies mit allen Konvertierungen von Daten nach Zeitstempel; so
to_timestamp(in_date+1, 'dd-mm-yyyy')
wirdCAST((in_date + 1) AS TIMESTAMP)
.aktualisiert
Es ist Hilfe! Es ist Arbeit! aber ich werde @Maksim Sirothkin, weil ich nicht weiß, was "CAST". Vielen Dank für Ihre Hilfe.
Das ist ein lächerlicher Grund, @user3868442; vor allem, wenn diese Antwort richtig ist. Wenn Sie nicht wissen, über etwas schauen Sie in die Dokumentation.
InformationsquelleAutor paubo147
Das problem ist mit der Anweisung to_timestamp(in_date, 'dd-mm-yyyy') das format ist zu kurz, Sie können es verwenden, ohne format Zustand to_timestamp(in_date).
InformationsquelleAutor Maksim Sirotkin