it-swarm.com.de

Ändern des Datentyps einer Spalte in Oracle

Ich habe die folgende Tabelle erstellt

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

Ich möchte die name, county und city von varchar(10) in varchar(20) ändern. Wie mache ich das?

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

Beachten Sie, dass ich auch den Datentyp von VARCHAR in VARCHAR2 ändere, um konventioneller zu sein. Derzeit gibt es keinen funktionalen Unterschied zwischen den beiden, obwohl sich das Verhalten von VARCHAR in Zukunft ändern kann, um dem SQL-Standard zu entsprechen.

30
Justin Cave

Wenn Sie nur den Spaltentyp ändern möchten, verwenden Sie unten:

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))

Wenn Ihre Tabelle Daten enthält, können Sie unten handeln:

  1. fügen Sie der Tabelle eine Spalte mit neuem Typ hinzu.
  2. daten aus alter Spalte in neue Spalte kopieren.
  3. alte Spalte fallen lassen.
  4. neue Spalte in alte umbenennen.

Um eine Spalte umzubenennen, verwenden Sie unten:

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