web-dev-qa-db-fra.com

Modification du type de données d'une colonne dans Oracle

J'ai créé le tableau suivant

CREATE TABLE PLACE(
  POSTCODE VARCHAR(10) PRIMARY KEY,
  STREET_NAME VARCHAR(10),
  COUNTY VARCHAR(10),
  CITY VARCHAR(10));  

Je veux changer les name, county et city de varchar(10) à varchar(20) Comment je fais ça?

14
user1232622
ALTER TABLE place
  MODIFY( street_name VARCHAR2(20),
          county      VARCHAR2(20),
          city        VARCHAR2(20) )

Notez que je change également le type de données de VARCHAR à VARCHAR2 pour être plus conventionnel. Il n'y a actuellement aucune différence fonctionnelle entre les deux, bien que le comportement de VARCHAR puisse changer à l'avenir pour correspondre au standard SQL.

30
Justin Cave

si vous souhaitez modifier uniquement le type de colonne, utilisez ci-dessous:

ALTER TABLE <table_name> MODIFY (<column_name> <new_Type>)
in your case:    
ALTER TABLE place MODIFY (street_name VARCHAR2(20),
                          county      VARCHAR2(20),
                          city        VARCHAR2(20))

Si votre table contient des données, vous pouvez agir ci-dessous:

  1. ajouter une colonne avec un nouveau type à la table.
  2. copier les données de l'ancienne colonne dans la nouvelle colonne.
  3. déposer l'ancienne colonne.
  4. renommer nouvelle colonne en ancienne.

Pour renommer une colonne, utilisez ci-dessous:

ALTER TABLE <table_name> rename column <column_name> to <new_column_name>
2
Ali Tofigh