web-dev-qa-db-ja.com

Oracleの列のデータ型の変更

次の表を作成しました

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

namecountycityvarchar(10)からvarchar(20)に変更したい。それ、どうやったら出来るの?

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

また、データ型をVARCHARからVARCHAR2に変更して、より一般的なものにすることに注意してください。現時点では、VARCHARの動作はSQL標準に一致するように変更される可能性がありますが、現時点では2つの機能に違いはありません。

34
Justin Cave

以下で使用する列のタイプのみを変更する場合:

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

テーブルにデータがある場合、以下を実行できます。

  1. 新しいタイプの列をテーブルに追加します。
  2. 古い列から新しい列にデータをコピーします。
  3. 古い列をドロップします。
  4. 新しい列の名前を古いものに変更します。

列の名前を変更するには、以下を使用します。

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