Maison > Article > base de données > Comment convertir le type de champ dans Oracle
Dans Oracle, vous pouvez utiliser l'instruction "ALTER TABLE MODIFY" pour convertir les types de champs. La syntaxe est "ALTER TABLE nom_table MODIFY (nom du champ nouveau type de données)".
L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.
Dans Oracle, vous pouvez utiliser l'instruction "ALTER TABLE MODIFY" pour modifier la définition des colonnes existantes, par exemple en modifiant le type de champ.
Format de syntaxe :
ALTER TABLE table_name MODIFY(字段名称 新数据类型)
Par exemple : 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, remplacez-le par varchar2(40). Lors de l'exécution, il apparaîtra : "ORA-01439 : Pour changer le type de données, la colonne à modifier doit être vide. ." À ce stade, la méthode suivante doit être utilisée pour résoudre ce problème :
/*修改原字段名name为name_tmp*/ alter table tb rename column name to name_tmp; /*增加一个和原字段名同名的字段name*/ alter table tb add name varchar2(40); /*将原字段name_tmp数据更新到增加的字段name*/ update tb set name=trim(name_tmp); /*更新完,删除原字段name_tmp*/ alter table tb drop column name_tmp;
Résumé :
1. Lorsqu'il n'y a aucune donnée dans le champ ou que le nouveau type à modifier est compatible avec le type d'origine, vous pouvez modifiez-le directement.
2. Lorsqu'un champ contient des données et que le nouveau type à modifier est incompatible avec le type d'origine, un nouveau champ doit être créé indirectement pour le transfert.
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!