1. ホーム
  2. java

[解決済み] java.sql.SQLException: ORA-01843: 有効な月ではありません。

2022-02-19 20:43:01

質問

オラクルデータベースにデータを挿入する際に、以下のエラーが発生します。

java.sql.SQLException: ORA-01843: not a valid month

データベースの日付はdd-MMM-yy (06-MAR-12)のようになります。
私は以下の方法で06-03-2012をdd-MM-yyに変換しています。

String s="06-03-2012";

String finalexampledt = new SimpleDateFormat("dd-MMM-yy").format(new SimpleDateFormat("dd-MM-yyyy").parse(s));

そのため、上記のデータベースの日付形式と同じ06-Mar-12を取得しましたが、エラーが発生しました。私は次のように挿入しています。

index.jsp内

 String todaydate="";

Calendar calendar1 = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
todaydate = dateFormat.format(calendar1.getTime());

<input type="text" name="datename" value="<%=todaydate%>"/>

サーブレットで(doPost)

String s=request.getParameter("datename");

PreparedStatement ps=con.prepareStatement("insert into tablename(rest_dt, othercolname) values (to_date(?, 'dd-mm-yyyy'), ?)");

ps.setString(1, s);
ps.setString(2, otherstringdata);

int  rs=ps.executeUpdate();

何かアイディアがあれば教えてください。

解決方法は?

ということで

("insert into mytablename (rest_dt) values to_date(?, 'DD-MM-YYYY')");  

これを試してみてください

TO_DATE(?, 'DD-MM-YYYY','NLS_DATE_LANGUAGE = American')  

// から取得します。 オラクルドキュメント