【发布时间】:2013-08-02 12:05:27
【问题描述】:
我正在使用 PreparedStatement 从 Java 向 Oracle 中插入数据。
以下是我的查询:
String query ="insert into table_name(ID, Date) values(?,(select to_char(TO_TIMESTAMP_TZ(REPLACE('Wed May 29 09:26:59 IST 2013','IST','Asia/Calcutta'),'Dy Mon DD hh24:mi:ss TZR YYYY'),'Dy Mon DD hh24:mi:ss YYYY') from dual))";
pstmt = con.prepareStatement(query,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
pstmt.setString(1, ID);
pstmt.setString(2, "Fri Aug 02 12:38:35 IST 2013");
pstmt.executeUpdate();
但我得到了例外:
java.sql.SQLException: ORA-01858: a non-numeric character was found where a numeric was expected
所以任何建议都将不胜感激。
更新1
我尝试设置时间戳:
pstmt.setTimestamp(1,Timestamp.valueOf("Fri Aug 02 12:38:35 IST 2013"));
但后来我遇到了异常:
java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
【问题讨论】:
-
使用
java.sql.Timestamp和PreparedStatement.setTimestamp() -
@a_horse_with_no_name 感谢您的建议,请参阅
update1 -
看看
SimpleDateFormat
标签: java oracle date prepared-statement