我有一张以这种方式制作的桌子
CREATE TABLE WS_NAPACQ00T
( IDE_IDEN varchar2(20) PRIMARY KEY NOT NULL,
CLB_CXML CLOB,
SYS_DATE TIMESTAMP
);
这个java代码放在dt_date当前日期。
Timestamp dt_date = new Timestamp(System.currentTimeMillis());
String insertXML = "insert into WS_NAPACQ00T (IDE_IDEN, CLB_CXML, SYS_DATE) values ('10', 'test', '"+dt_date+"' ) ";
result = statement.executeQuery(insertXML);
错误是:
"not a valid month"
我该如何解决?
答案 0 :(得分:4)
请勿使用Statement导致SQLInjection,而是使用PreparedStatement,如下所示。
String insertXML = "insert into WS_NAPACQ00T (IDE_IDEN, CLB_CXML, SYS_DATE) values (?, ?, ?) ";
PreparedStatement statement = connection.prepareStatement(insertXML);
statement.setString(1,"10");
statement.setString(2,"test");
statement.setTimestamp(3, new Timestamp(System.currentTimeMillis()));
result = statement.executeQuery();
无关。
如果要插入当前时间戳,可以使用CURRENT_TIMESTAMP
。 SELECT CURRENT_TIMESTAMP from DUAL;
将提供当前时间戳。