2016年2月15日月曜日

ORA-01866 日付時刻クラスが無効です

久しぶりのブログエントリーとなります。
残業続きの日々も終わり、今は仕事が落ち着いてきたので、ブログや検証を進めていきたいと思います。

さて、先日テーブルのカラムをTIMESTAMP型からCHAR型に変更しようとしたら、こんなエラーが出ました。

ORA-01866: 日付時刻クラスが無効です


TIMESTAMP型のカラムをよくよく確認してみると、デフォルト値にSYSTIMESTAMPが指定されていました。
つまり、CHAR型ではSYSTIMESTAMPをデフォルト値として指定できないので、エラーになってしまうようです。

今回はこのようにエラー回避して変更しました。

alter table table01 modify column01 default null;
alter table table01 modify column01 char(30);