2017-03-29 4 views
-2

Ich erstelle eine dynamische Abfrage mit Prozedur. Der Eingabeparameter hat den Datentyp timestamp.ORA-01843: kein gültiger Monat

create or replace PROCEDURE TEST 
(p_party_eff_dt_in mina_owner.party_to_party.effective_two_dt%TYPE) 

select to_timestamp(p_party_eff_dt_in,'mm/dd/yyyy HH24:MI:SS.FF3') from <table> 

gibt dem folgenden Fehler

ORA-01843: keine gültigen Monat

Bitte helfen

Edit:

P_PARTY_EFF_DT_IN :='03-JUL-04 04.34.50.198000000 AM'; – 
+3

was ist der Wert von p_party_eff_dt_in – Jens

+2

Wenn der Eingangsparameter bereits ein 'timestamp', warum die' to_timestamp'? – Aleksej

+1

Nichts davon macht Sinn. Dies ist nicht der eigentliche Code, den Sie ausführen, daher ist es schwierig zu verstehen, was Sie erreichen möchten. Das Mindeste, was Sie tun können, ist einen funktionierenden, reproduzierbaren Testfall mit Beispieleingabe zu posten. Außerdem eine Erklärung der Logik, etwa warum Sie einen TIMESTAMP-Parameter auf ein TIMESTAMP-Objekt anwenden. – APC

Antwort

1

Sie verwenden eine Formatmaske, die nicht mit Ihrer Eingabe übereinstimmt.

Unter der Annahme, dass in '03-JUL-04' '03' den Tag und '04' Aufenthalte für das Jahr 2004, benötigen Sie:

select to_timestamp('03-JUL-04 04.34.50.198000000 AM', 'dd-mon-yy hh.mi.ss.FF9 PM') from dual 
Verwandte Themen