2017-05-12 8 views
1

Also habe ich dieses kleine Skript:ORACLE 10g: TO_DATE() Keine gültige Monat

set serveroutput on; 
DECLARE 
    val DATE; 
BEGIN 
    val := TO_DATE('27-Jan-2001','DD-Mon-YYYY'); 
    dbms_output.put_line(val); 
END; 

Die Maske Spiel mit dem Datum Ich bin inputing aber es zeigt

ORA-01843: kein gültiger Monat

jedes Mal ...

Dank

+0

Kopieren Sie/fügen Sie Ihr Skript, funktioniert gut für mich – unleashed

+0

Versuchen Sie 'val: = TO_DATE ('27 -JAN-2001 ',' DD-MON-YYYY ');' - sehen, ob es funktioniert. Überprüfen Sie auch die NLS-Parameter der Datenbank, indem Sie 'show parameter nls' ausgeben. Fügen Sie das Ergebnis hier ein. – g00dy

+0

Mein nls_date_format ist DD/MM/RR Gleicher Fehler mit val: = TO_DATE ('27 -JAN-2001 ',' DD-MON-YYYY ') – Scarrs

Antwort

5

Wahrscheinlich ist Ihre aktuelle Sitzung NLS_DATE_LANGUAGE auf einen Wert eingestellt, bei dem Januar nicht als "Jan" abgekürzt wird.

Try this:

DECLARE 
    val DATE; 
BEGIN 
    val := TO_DATE('27-Jan-2001','DD-Mon-YYYY', 'NLS_DATE_LANGUAGE = american'); 
    dbms_output.put_line(val); 
END; 

Oder

ALTER SESSION SET NLS_DATE_LANGUAGE = 'american'; 

ausführen, bevor Sie Ihren PL/SQL-Block ausgeführt werden.

+0

Danke, dass es mit dem Parameter 'NLS_DATE_LANGUAGE = american' gearbeitet hat! – Scarrs