JDBCを使ってdate型へのINSERTはできますか?
JDBCを使ってOracleへ接続し、DBへデータを挿入したいのですが、
日付型のデータがどうしてもうまく挿入できません。
jsp + Servlet + Bean で開発しています。
使っているテーブルは
CREATE TABLE USERS (
USERID VARCHAR2(10) NOT NULL,
PASSWORD VARCHAR2(10) NOT NULL,
NAME VARCHAR2(50) NULL,
SEX VARCHAR2(5) NULL,
BIRTHDAY DATE NULL,
PRIMARY KEY (USERID, PASSWORD)
)
という風な型で、定義しています。
DBへのINSERT処理は、Beanで行っています。
以下のINSERT文を実行したのですが、うまくINSERTできませんでした。
String sqlQuery =
"INSERT INTO USERS (USERID, PASSWORD, NAME, SEX, BIRTHDAY)"
+ "VALUES ('use', 'pass', 'ナマエ', '女性', '1980/06/05')"
int numOfUpdate = statement.executeUpdate(sqlQuery);
ちなみに、この中のdate型で定義している「BIRTHDAY」を除いたINSERT文
String sqlQuery =
"INSERT INTO USERS (USERID, PASSWORD, NAME, SEX)"
+ "VALUES ('use', 'pass', 'ナマエ', '女性')"
int numOfUpdate = statement.executeUpdate(sqlQuery);
だとうまくINSERTできます。
sql*plusを使って直に書くと、両方うまくINSERTできました。
●その後に、「BIRTHDAY」をdate型からVARCHAR2(10)へ定義し直し、
DBを作り直して実行した所、うまくINSERTできるようになりました。
なぜ「date型」だとINSERTできず、「VARCHAR2型」だとINSERTできるのか、
知っている方がおられましたら、ぜひ教えて頂きたいです。
お礼
すみません。 Commitの処理を加えるといけました。 (Commitの位置が悪かったみたいです) しかし、アプレットのときは、 CommitなしでもINSERTできたのに、 Servletでの開発ではできないのは、どうして なんでしょうか?? (同じDBを用いております) とにかくありがとうございました。
補足
同様でした。。。