Ich habe die Anforderung, einen spezifischen Zeitstempel von Java in die Oracle-Datenbank einzufügen; Meine Oracle-Spalte ChangeTime ist von DATA_TYPE = TIMESTAMP (6) und erwartet einen Wert im Format - 08-APR-16 09.52.22.000000000 AM.ORA-01843: kein gültiger Monat -java zu sql Datumsumwandlung
Ich habe die java.sql.Timestamp bespannen in meinem Java-Code konvertiert:
String changeTimestamp = new Timestamp(System.currentTimeMillis()).toString();
und meine SQL PreparedStatement ist wie folgt:
<property name="updatePersonDetail">
<bean class="com.cigna.ibor.dao.UpdateWithParameters" parent="dao.template">
<constructor-arg ref="mydb.ds" />
<constructor-arg>
<value>
<![CDATA[
UPDATE MYDB.INDIV_DETAIL
SET PERSON_ID =?
, LAST_OPER_ID = ?
, LAST_TIMESTMP = ?,
WHERE SRC_LOC_CD = ?
AND SRC_SYS_ID = ?
]]>
</value>
</constructor-arg>
<constructor-arg>
<list>
<ref local="java.sql.Types.VARCHAR" />
<ref local="java.sql.Types.VARCHAR" />
<ref local="java.sql.Types.VARCHAR" />
<ref local="java.sql.Types.VARCHAR" />
<ref local="java.sql.Types.VARCHAR" />
</list>
</constructor-arg>
</bean>
</property>
ich java.sql bin immer. SQLDataException: ORA-01843: kein gültiger Monat beim Ausführen. Jede Hilfe wird geschätzt!
sieht aus wie Sie versuchen, eine Zeichenfolge in einen Timestamp einzufügen – kevinsky
Es wäre hilfreich, mehr Code und auch einige Debug-Ausgabe von wie Ihr Zeitstempel aussieht. – Adowrath
@kevinsky: ja ... wie kann ich diese Zeichenfolge konvertieren, so dass mein Orakel keinen Fehler beim Aktualisieren wirft? – Bidisha