列の型やサイズを変更するには、ALTER TABLE~MODIFY句を使用します。
構文
- (列を定義変更する構文)
- ALTER TABLE テーブル名 MODIFY (col1 定義 [, col2 定義 ..]);
複数列の定義を同時に設定できます。
サンプル
例)mytblテーブルの定義を col1→VARCHAR2(10)、col2→NUMBER(3,0)にする
1 |
ALTER TABLE mytbl MODIFY(col1 VARCHAR2(10), col2 NUMBER(3,0)); |
- 実行例
- SQL> ALTER TABLE mytbl MODIFY(col1 VARCHAR2(10), col2 NUMBER(3,0)); 表が変更されました。
解説
- 定義を変更する時は、全てのデータを変更後の定義に合致するように更新しておく必要があります。
- サイズを小さくする時に大きすぎるデータがあると以下のようなエラーが発生します。
(文字の場合)ORA-01441:大きすぎる値があるため、列の長さを減らせません。
(数値の場合)ORA-01440:精度またはスケールを下げるには、修正する列を空にする必要があります。