Maison >Problème commun >Comment changer le type de colonne dans Oracle

Comment changer le type de colonne dans Oracle

小老鼠
小老鼠original
2023-07-11 15:38:524403parcourir

La méthode d'Oracle pour changer le type de colonne est la suivante : 1. Lorsque le champ ne contient aucune donnée ou que le nouveau type à modifier est compatible avec le type d'origine, vous pouvez le modifier directement ; 2. Lorsque le champ contient des données et le nouveau type ; à modifier n'est pas compatible avec le type d'origine. Ce faisant, vous devez créer directement un nouveau champ à transférer.

Comment changer le type de colonne dans Oracle

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

Comment changer le type de colonne dans Oracle ?

1. En supposant que les données du champ sont vides, quel que soit le type de champ modifié, vous pouvez exécuter directement :

alter table tb modifier (nom nvarchar2(20)); remplacez-le par nvarchar2(20) ) peut être exécuté directement :

alter table tb modifier (nom nvarchar2(20));

3. En supposant que le champ contient des données, remplacez-le par varchar2(40). apparaîtra : "ORA-01439 : Pour changer le type de données, alors 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. to name_tmp*/

alter table tb renommer le nom de la colonne en name_tmp;

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

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;

Résumé :

1. Lorsque le champ ne contient aucune donnée ou que le nouveau type à modifier est compatible avec le type d'origine, vous pouvez directement modifier modifier.

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 transférer.

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