У меня есть Java-программа, которая читает дату как строку из входного файла и обновляет таблицу Oracle, где эта дата является частью полей индекса.
Я пробовал следующие варианты:
а) Чтение данных из файла CSV, разделенного символом;as String
109920541;2013-01-17 11:48:09;EDWARD ANTHONY;
b) Использование SimpleDateFormat для преобразования строки в дату в подпрограмме:
java.text.SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date dt = formatter.parse("2013-01-17 11:48:09");
c) Используйте эту дату для подготовки моего sql stmt:
String update_query = "UPDATE "+ tableName +" SET NAME = ? WHERE ID = ? AND DATE_TIME = ?";
java.sql.Connection conn = java.sql.DriverManager.getConnection(dbUrl, dbUser, dbPwd);
java.sql.PreparedStatement pstmt = conn.prepareStatement(update_query);
if (dt not null) {
pstmt.setObject(1, new java.sql.Timestamp(dt.getTime()),java.sql.Types.DATE);
}
pstmt.executeBatch();
d) Это не находит дату, которая является частью ключа, и поэтому данные не обновляются.
В sql developer я использую следующий запрос для извлечения строки:
SELECT * FROM table
WHERE ID = '1099205410'
AND DATE_TIME = TO_DATE('2013-01-17 11:48:09', 'YYYY-MM-DD HH24:MI:SS');
Как преобразовать строку Java в дату Oracle?
Спасибо.