2012-04-25 10 views

ответ

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

Обратите внимание, что я также изменение типа данных от VARCHAR к VARCHAR2 более условна. В настоящее время нет функциональных различий между ними, хотя поведение VARCHAR может измениться в будущем в соответствии со стандартом SQL.

+0

так VARCHAR2 будет более лучший вариант использовать – user1232622

+0

@ user1232622 - 'VARCHAR2', безусловно, будет более традиционным, да. Если вы хотите избежать (по общему признанию, небольшого) риска того, что поведение ваших столбцов «VARCHAR» изменится в будущей версии Oracle таким образом, что это нарушит ваше приложение, вы хотите использовать «VARCHAR2». –

+0

oh ok Спасибо за помощь – user1232622

-2

Вы не можете изменить тип данных таблицы, если у вас есть некоторое количество записей, уже присутствующих в таблице.

Вы должны опустошить записи таблицы столбца (вы хотите изменить тип данных), а затем использовать следующую команду:

alter table place 
modify (street_name varchar2(20), country varchar2(20), city varchar2(20)); 

Определенно, это будет работать!

+2

Oracle позволит вам изменять типы данных в существующих столбцах в существующей таблице, где уже есть данные, если существующие данные совместимы с новыми данными тип. В этом случае вопросник хочет сделать столбцы более широкими; конечно, это разрешено без перемещения данных. – MikeB

1

, если вы хотите изменить только тип использования колонки ниже:

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> 
-1
Alter table placemodify(street name varchar2(20),city varchar2(20) 
Смежные вопросы