2016-05-02 27 views
0

Oracleのsql.Iに現在の日付を挿入しようとしています。データ型をoracle sqlにDATEに設定し、日付形式をDD-MM-YYYYに変更しました。 oracle.jdbc.driver.OraclePreparedStatement.setStringInternalで無効な列インデックス :below.Don'tが間違っているものをjdbcを使用してoracleデータベースに現在の日付を挿入します

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を知る示すように、私はいくつかのエラーを取得していますfollows.Butとして現在の日付を挿入(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としてエラーが発生しました。リテラルはformat stringと一致しません.Oracle sqlでDATEをフォーマットしました。したがって、私は一般的に次のように値を挿入します:INSERT into t(start_date)values(TO_DATE( '19990725'、 'YYYYMMDD'));ここで、現在の日付を取得してテーブルに挿入するためにコード内で何を変更する必要がありますか? – pavikirthi

+0

年は小文字のYYYYではなく、小文字のYYYYを使用します。 1日は大文字ではなく、小文字のDDを使用します。 – tbriscoe

+0

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

0

してくださいユーザーstatement.setObject(1, new java.sql.Date());代わり

+0

@Pamparanpa:しかし、oracle sqlで日付をフォーマットしました。一般的に、私はoracleに日付を挿入するとき、次のようにします:t(start_date)の値(TO_DATE( '19990725'、 'YYYYMMDD'))に挿入します。だから私は現在の日付を取得し、その形式でテーブルに挿入するコードで何を変更する必要がありますか? – pavikirthi

関連する問題