Oracleにデータを挿入しようとしたところ、「ORA-01830: 日付書式の変換で不要なデータが含まれています。 」が表示されました。
SQL文は、
INSERT INTO users (column1, datecolumn1) VALUES ('1', '2016/02/04 23:59:59')
です。
DATE型のカラムでエラーということまでは想像できました。
photo credit: IMG_1078 via photopin (license)
変換が必要
検索をしてみると、文字列から日付型への暗黙変換を期待せず、明示的に変換するように書かれていました。ORA-01830 - オラクル・Oracle エラー FAQ
TO_DATE()を使えば、明示的に変換できるようです。
SQL文を
INSERT INTO users (column1, datecolumn1) VALUES ('1', '2016/02/04 23:59:59')
から
INSERT INTO users (column1, datecolumn1) VALUES ('1', TO_DATE('2016/02/04 23:59:59', 'YYYY/MM/DD HH24:MI:SS'))
に変更したところ、挿入できるようになりました。
8年か9年前にもOracleを利用していた時期があったので、同じようにエラーが起きて対処したはずですが、全く記憶がありませんでした。
次回からはこの記事を探して、すぐ対処ができるようになります。