ホームページ >データベース >Oracle >Oracleでテーブルフィールドの型を変更する方法

Oracleでテーブルフィールドの型を変更する方法

青灯夜游
青灯夜游オリジナル
2021-12-24 14:25:3752929ブラウズ

Oracle では、「alter table」ステートメントを使用してテーブルのフィールド タイプを変更できます。このステートメントの機能は、元のテーブルの構造を変更することです。構文は「alter table table name edit (フィールド名 新しい型名); "ステートメント。

Oracleでテーブルフィールドの型を変更する方法

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

テーブル フィールドのデータ型を変更します

tb という名前のテーブル、name という名前のフィールド セグメント、および nchar(20) のデータ型があります。 )。

1. フィールド データが空であると仮定すると、フィールドの種類が変更されても、直接実行できます:

alter table tb modify (name nvarchar2(20));

2.フィールドにデータがある場合は、変更します。 nvarchar2(20) に対して直接実行できます:

alter table tb modify (name nvarchar2(20));

3, フィールドにデータがあると仮定すると、varchar2( を実行するとポップアップ表示されます) 40): 「ORA-01439: データ型が変更される場合、変更される列は空である必要があります。」 この場合、この問題を解決するには次のメソッドを使用する必要があります:

/*Modify元のフィールド名を name_tmp に*/

alter table tb rename column name to name_tmp;

/ *元のフィールド名と同じ名前のフィールド名を追加*/

alter table tb add name varchar2(40);

/*元のフィールド name_tmp データを追加したフィールドに更新しますフィールド名*/

update tb set name=trim(name_tmp);

/*更新後、元のフィールド名_tmp*/

alter table tb drop column name_tmp;

3を削除します。フィールドの追加とフィールドの削除

    --添加新的字段

    alter table lyz_emp add(e_age number(3));

    --添加多个新的字段

    alter table lyz_emp add(

    e_age number(3),

    e_age_tmp,varchar2(20));

    --获取表字段:

    select *

    from user_tab_columns

    where Table_Name='lyz_emp'

    order by column_name

    --删除表中的字段

    alter table lyz_emp drop column e_age;

推奨チュートリアル: 「Oracle チュートリアル

以上がOracleでテーブルフィールドの型を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。