#sql #oracle
#sql #Oracle
Вопрос:
String s1 = "create table crawler "
"(id number NOT NULL PRIMARY KEY, "
"url varchar(255) NOT NULL, "
"urlHash varchar(255) NOT NULL, "
"contentHash varchar(255), "
"modDate TIMESTAMP(4), "
"contentLocation varchar(100), "
"status integer, "
"lastCrawlDate TIMESTAMP(4)) ";
String s2 = "create sequence test_seq start with 1 increment by 1 nomaxvalue";
//String s3 = "create or replace trigger inserttrigger before insert on test for each row begin select test_seq.nextval into :new.id from dual; end;";
stmt=conn.createStatement();
stmt.executeUpdate(s1);
stmt.executeUpdate(s2);
//stmt.executeUpdate(s3);
// Как я могу использовать TIMESTAMP здесь, в этом prepareStatement, для добавления значений временных меток в базу данных, как в инструкции Insert, которую мы можем использовать следующим образом: ВСТАВИТЬ В ЗНАЧЕНИЯ mytimestamp (id, made_on) (1, ВРЕМЕННАЯ МЕТКА ‘2005-05-13 07:15:31.123456789’); итак, как я могу использовать это в prepareStatement.
ps = conn.prepareStatement (
"INSERT INTO crawler (id, url, urlHash, contentHash, modDate, contentLocation, status, lastCrawlDate) VALUES(test_seq.nextval,?,?,?,TIMESTAMP '?',?,?,TIMESTAMP '?')");
ps.setString (1, "http://www.google.com");
ps.setString (2, "swerrsdfsfdgfgrgthtyty");
ps.setString (3, "1a10407d9a7997531aabe");
ps.setString (4, "2005-05-13 07:15:31.123456789");
ps.setString (5, "c://");
ps.setLong (6, 302);
ps.setString (7, "2005-05-13 07:15:31.123456789");
int count = ps.executeUpdate ();
Таким образом, я получаю сообщение об ошибке. Любая ошибка в этом коде..
Ответ №1:
Вместо TIMESTAMP '?'
write TO_TIMESTAMP(?, 'YYYY-MM-DD HH24:MI:SS.FF')
.