Oracleが適用する変更表フィールドのタイプ
740 ワード
Mysqlは、データがあるテーブルフィールドとないテーブルフィールドのタイプを任意に変更できますが、oracleは異なります.テーブルAにフィールドaがある場合、本来numberタイプであり、varchar 2タイプに変更したい.(1)フィールドaにデータがない場合はvarchar 2(10)に変更し、以下のようにすることができる.
(2)フィールドにデータがある場合は、上記のsqlを実行するとヒントが表示されます
「ORA-01439:データ型を変更するには、変更する列を空にする必要があります」
この場合、私たちは考えを変えて修正することができます.考えは、まず一時的なフィールドを作成し、データバックアップを行います.
alter table A modify (a varchar2(10));
(2)フィールドにデータがある場合は、上記のsqlを実行するとヒントが表示されます
「ORA-01439:データ型を変更するには、変更する列を空にする必要があります」
この場合、私たちは考えを変えて修正することができます.考えは、まず一時的なフィールドを作成し、データバックアップを行います.
varchar2
alter table A add new_temp varchar2(10);
a
update A set new_temp = a;
commit;
a
update A set a = '';
commit;
a
alter table A modify a varchar2(10);
update A set a = new_temp;
commit;
drop
alter table appr_control_info_ex drop column new_temp;