SQL:Oracle:表(テーブル)定義の変更:データ型変更の注意点
SQL (37 items)
2005年02月10日
データ型の変更も、ALTER TABLE TABLE名 MODIFY〜を使用する。
<関連記事>
>SQL:Oracle:表(テーブル)定義を変更したい:列の桁数変更など
ここで注意点しなければならないのは、
例えば、「列A」をVARCHAR2からNUMBERにデータ型を変更するような時、
既に「列A」に”ABCDE”といった文字データが入っていると、
”ABCDE”は数値型には適合しないので、もちろんMODIFY時にエラーとなる。
こういう場合は、「列A」のデータをどうするか?という問題をクリアにしてから、
データの更新を行った上で、MODIFTする。
■例:データをNULLで初期化する場合(現状、列AはVARCHAR2(5))
<関連記事>
>SQL:Oracle:列名(カラム名)の変更:RENAME COLUMN
<関連記事>
>SQL:Oracle:表(テーブル)定義を変更したい:列の桁数変更など
ここで注意点しなければならないのは、
例えば、「列A」をVARCHAR2からNUMBERにデータ型を変更するような時、
既に「列A」に”ABCDE”といった文字データが入っていると、
”ABCDE”は数値型には適合しないので、もちろんMODIFY時にエラーとなる。
こういう場合は、「列A」のデータをどうするか?という問題をクリアにしてから、
データの更新を行った上で、MODIFTする。
■例:データをNULLで初期化する場合(現状、列AはVARCHAR2(5))
UPDATE 表A SET 列A = NULL;
COMMIT;
ALTER TABLE 表A MODIFY(列A NUMBER(5));
<関連記事>
>SQL:Oracle:列名(カラム名)の変更:RENAME COLUMN
前の記事 次の記事
