Maison  >  Article  >  base de données  >  Comment modifier le type de champ de table dans Oracle

Comment modifier le type de champ de table dans Oracle

青灯夜游
青灯夜游original
2021-12-24 14:25:3752726parcourir

Dans Oracle, vous pouvez utiliser l'instruction "alter table" pour modifier le type de champ de la table. La fonction de cette instruction est de changer la structure de la table d'origine. La syntaxe est "altérer le nom de la table modifier (nom du champ nouveau type). nom);" déclaration.

Comment modifier le type de champ de table dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Modifier le type de données du champ de table

Il existe une table nommée tb, un segment de champ nommé name et un type de données nchar(20).

1. En supposant que les données du champ sont vides, quel que soit le type de champ modifié, il peut être exécuté directement :

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

2 En supposant que le champ contient des données, il peut être exécuté directement en passant à nvarchar2. (20) :

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

3. En supposant que le champ contient des données, lorsqu'il est modifié en varchar2(40), il apparaîtra : "ORA-01439 : Pour changer le type de données, la colonne à modifier Doit être vide". Dans ce cas, la méthode suivante doit être utilisée pour résoudre ce problème :

/*Modifier le nom du champ d'origine en name_tmp*/

alter table tb rename column name to name_tmp;

/*Ajouter un nom de champ avec le même nom que le champ d'origine name*/

alter table tb add name varchar2(40);

/*Mettez à jour les données du champ d'origine name_tmp avec le nom du champ ajouté*/

update tb set name=trim(name_tmp);

/*Après la mise à jour, supprimez le champ d'origine name_tmp*/

alter table tb drop column name_tmp;

3. Ajoutez des champs et supprimez des champs

    --添加新的字段

    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;
.

Tutoriel recommandé : "Tutoriel Oracle"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn