2016-05-02 6 views
0

Я пытаюсь вставить текущую дату в Oracle sql.I задал тип данных DATE в oracle sql и изменил формат даты на DD-MM-YYYY. Теперь я пытаюсь вставить текущую дату как follows.But я получаю ошибку, как показано below.Don't знаю, что это неправильновставить текущую дату в базе данных оракула с помощью jdbc

String sql6 = "insert into account(acc_no,acc_type,primary_phone_number,people_in_plan,acc_activated_date,acc_deactivated_date) values('"+n1+"','"+acctype+"','"+primaryphoneno+"','"+number_of_people+"',?,?)";  
Stmt = connection.prepareStatement(sql6); 
SimpleDateFormat sdf=new SimpleDateFormat("DD-MM-YYYY"); 
Date date1 = new Date(System.currentTimeMillis()); 
Stmt.setString(5, sdf.format(date1)); 
Stmt.setNull(6, java.sql.Types.DATE); 
Stmt.executeUpdate(); 

java.sql.SQLException: Invalid индекс столбца в oracle.jdbc.driver.OraclePreparedStatement.setStringInternal (OraclePreparedStatement.java:5386) на oracle.jdbc.driver.OraclePreparedStatement.setString (OraclePreparedStatement.java:5374) на oracle.jdbc.driver.OraclePreparedStatementWrapper.setString (OraclePreparedStatementWrapper.java:282)

+1

Если вам не нужна дата для остальной обработки, почему бы просто не вставить sysdate? –

ответ

0

Похоже, ваши индексы столбцов неверны. Они должны быть 1 и 2 соответственно.

Stmt.setString(1, sdf.format(date1)); 
Stmt.setNull(2, java.sql.Types.DATE); 
+0

Я изменил его, но я получаю сообщение об ошибке, поскольку ORA-01861: литерал не соответствует форматированной строке. Так, я создал формат DATE в SQL Server. Таким образом, я обычно вставляю значения следующим образом: INSERT в значения t (start_date) (TO_DATE ('19990725', 'YYYYMMDD')); Здесь, что я должен изменить в коде, чтобы получить текущую дату и вставить ее в таблицу? – pavikirthi

+0

Используйте нижний регистр yyyy, а не заглавный ГГГГ за год. Используйте нижний регистр dd, а не прописную букву DD для дня. – tbriscoe

+0

'SimpleDateFormat sdf = new SimpleDateFormat (« dd-MM-yyyy »);' – tbriscoe

0

пожалуйста пользователь statement.setObject(1, new java.sql.Date()); вместо

+0

@Pamparanpa: Но я отформатировал дату в oracle sql. Обычно, когда я вставляю дату в оракул, я делаю следующее: INSERT в значения t (start_date) (TO_DATE ('19990725', 'YYYYMMDD')); так что теперь его показ error.Here, что я должен изменить в коде, чтобы получить текущую дату и вставить ее в таблицу в этом формате? – pavikirthi