Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment modifier le type de données dans Oracle avec des lignes existantes dans la table

Vous ne pouvez pas.

Vous pouvez toutefois créer une nouvelle colonne avec le nouveau type de données, migrer les données, supprimer l'ancienne colonne et renommer la nouvelle colonne. Quelque chose comme

ALTER TABLE table_name
  ADD( new_column_name varchar2(10) );

UPDATE table_name
   SET new_column_name = to_char(old_column_name, <<some format>>);

ALTER TABLE table_name
 DROP COLUMN old_column_name;

ALTER TABLE table_name
 RENAME COLUMN new_column_name TO old_coulumn_name;

Si vous avez du code qui dépend de la position de la colonne dans la table (ce que vous ne devriez vraiment pas avoir), vous pouvez renommer la table et créer une vue sur la table avec le nom d'origine de la table qui expose les colonnes dans le commandez votre code jusqu'à ce que vous puissiez corriger ce code bogué.