Oracle увеличивает размер поля varchar2

Обновлено: 21.11.2024

Действием может быть множество действий, например
(а) изменение типа данных
(б) сокращение или расширение типа данных
(в) изменение значения по умолчанию
(г) ) Изменить, чтобы разрешить нулевые или не нулевые значения
(e) Видимость столбца
(d) Изменение виртуального столбца
Начнем по одному

Оглавление

Изменить тип данных столбца Oracle MODIFY

Вы можете изменить тип данных изменения столбца, только если столбец пуст

Поскольку таблица пуста, мы можем изменить тип данных изменения столбца

Давайте вставим некоторые данные

Теперь снова попробуйте изменить столбец, чтобы изменить тип данных

Теперь мы можем обнулить этот столбец и успешно выполнить этот оператор

Теперь, что делать, если мы хотим сохранить данные, есть несколько вариантов
(a) Добавить новый столбец как новый тип данных, скопировать данные в этот столбец, удалить старый столбец, переименовать новый столбец как фактический столбец имя:

(b) Используйте DBMS_REDEFINITION и перестройте таблицу с новыми столбцами

Oracle MODIFY column Укоротить или расширить тип данных (изменить таблицу, изменить размер столбца oracle)

Это используется, когда мы хотим изменить байты или символы VARCHAR.
Пример

Здесь мы увеличиваем длину VARCHAR с 50 до 100

Теперь, если мы пытаемся сократить длину со 100 до 10

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

Значение столбца Oracle MODIFY по умолчанию

если нам нужно изменить значение столбца по умолчанию

Теперь в следующий раз, если произойдет какая-либо вставка, а BCOST будет нулевым, значение по умолчанию будет равно 1000

Oracle MODIFY столбец NULL или NOT NULL

Мы можем изменить столбец, чтобы разрешить нулевые или не нулевые значения

Если вы меняете значение не на null, у нас должно быть существующее значение, иначе произойдет сбой

Видимость столбца Oracle MODIFY

Мы можем изменить видимость столбца с помощью Изменить столбец

Надеюсь, вам понравится этот пост в таблице изменений оракула, измените столбец. Пожалуйста, предоставьте отзыв

Операторы UNION, INTERSECT, MINUS и сортировка результатов запроса

Функция Oracle DECODE

Функция Oracle INSTR() с примерами

Функция Oracle TO_CHAR()

Числовые функции (математические функции)

Функции персонажа

Разные функции

Агрегированные функции

Функции даты и времени

Запросы на присоединение к Oracle

ГРУППИРОВКА ПО ЗАПРОСАМ, ПОДЗАПРОСЫ

Функции CUBE, ROLLUP

Oracle DML (ВСТАВИТЬ, ОБНОВИТЬ, УДАЛИТЬ.)

DDL Oracle (СОЗДАНИЕ, ИЗМЕНЕНИЕ, УДАЛЕНИЕ)

ЗАПИСАТЬСЯ, ОТКАТ, ТОЧКА СОХРАНЕНИЯ

Язык управления данными (GRANT, REVOKE)

Значения ПО УМОЛЧАНИЮ

Отключение ограничений

Отключение и включение

Проверка различных ограничений

Просмотреть информацию об ограничениях

Работа с датами

Представления Oracle

Последовательности Oracle

Синонимы Oracle

Индексы и кластеры

Изменение таблиц разделов

Удаление разделов

Объединение разделов

Разделение разделов

Объединение разделов

Объекты и типы объектов Oracle

В этом руководстве мы узнаем, как изменять столбцы в существующих таблицах. В этом руководстве мы рассмотрим все сценарии, в которых необходимо использовать оператор столбца ALTER TABLE MODIFY в Oracle.

Мы используем команду ALTER TABLE MODIFY column для изменения столбцов в существующих таблицах. Например, увеличение или уменьшение ширины столбца, изменение типа данных столбца (применяются условия, мы обсудим их позже), добавление ограничения к столбцу (условное), шифрование или дешифрование столбца и т. д.

Одной из наиболее распространенных ситуаций, когда мы используем оператор ALTER TABLE MODIFY, является увеличение ширины столбца.

Примеры

Как увеличить ширину столбца

Предположим, у нас есть таблица по имени emp со следующей структурой

Как видно из рисунка выше, ширина столбца EName равна 10. Теперь мы хотим увеличить ширину столбца EName до 50. Для этого выполним следующую команду ALTER TABLE MODIFY

Oracle отобразит сообщение о том, что таблица изменена. Теперь, если мы снова увидим структуру таблицы, дав команду описать, вы увидите изменение

Далее, как уменьшить ширину столбца

Чтобы уменьшить размер столбца в таблице Oracle

Аналогичным образом мы также можем уменьшить ширину столбца при условии, что длина наибольшего значения в столбце должна соответствовать новому размеру столбца.

Например, предположим, что у нас есть столбец с именем JOB в образце таблицы EMP. Его ширина равна Varchar2(50).

Теперь ширина наибольшего значения в столбце равна:9. Привет! Как мы это узнали? Вы можете узнать длину наибольшего значения в столбце, выполнив следующий запрос.

Итак, если вы хотите уменьшить размер столбца, мы можем уменьшить его до Varchar2(9) не ниже.

Вот запрос для уменьшения ширины столбца

Вы, должно быть, заметили, что команда одинакова для увеличения или уменьшения ширины столбца.

Изменение более 1 столбца одной командой.

Да, это возможно, мы можем изменить несколько столбцов одной командой, указав следующую инструкцию SQL

Приведенная выше команда уменьшит ширину столбца ename до 40 и увеличит столбец job до 30.

Изменение DATATYPE столбца в Oracle

Мы можем изменить тип данных столбца на аналогичный другой тип данных, например,

От DATE до TIMESTAMP

TIMESTAMP до DATE

CHAR в VARCHAR2

VARCHAR2 в CHAR

в любое время. пуста таблица или не пуста. Но чтобы изменить тип данных столбца на совершенно другой тип, например, VARCHAR2 на NUMBER или DATE на VARCHAR2, таблица должна быть пустой, т. е. в ней не должно быть строк. ИЛИ, по крайней мере, столбец должен быть пустым. Если мы дадим команду ALTER, Oracle выполнит ошибку

Изменение столбца DATE на TIMESTAMP

Чтобы изменить тип данных столбца с DATE на TIMESTAMP, введите следующую команду.

Измените тип данных с NUMBER на VARCHAR2

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

Сделать столбец НЕВИДИМЫМ или ВИДИМЫМ (12C)

В 12c мы можем сделать столбец невидимым, т. е. столбец будет там, как и в таблице, но не будет отображаться в запросах полной таблицы. например, SELECT * FROM emp;

Чтобы сделать столбец НЕВИДИМЫМ, мы должны использовать команду ALTER TABLE MODIFY, как показано ниже

Подробные советы по синтаксису таблицы изменений Oracle см. в книге "Easy Oracle Jumpstart". Oracle предоставляет синтаксис "alter table" для изменения столбцов данных на месте в следующей форме:

изменить таблицу
table_name
изменить тип данных
column_name;

Если вы смелы, вы можете использовать один синтаксис "изменить таблицу" для изменения нескольких столбцов:

изменить таблицу
имя_таблицы
изменить
(
имя_столбца1_тип_столбца1,
имя_столбца2_тип_столбца2,
имя_столбца3_тип_столбца3,
имя_столбца4_тип_столбца4
>);

Вот несколько примеров синтаксиса Oracle "alter table" для изменения столбцов данных. Обратите внимание, что вы можете добавлять ограничения, такие как NOT NULL:

ALTER TABLE
customer
MODIFY
(
cust_name varchar2(100) not null,
cust_hair_color varchar2(20)
)
;

Мы также можем использовать синтаксис Oracle "alter table" в динамическом PL/SQL для изменения столбцов данных

Бурлесон — американская команда

Примечание. Эта документация по Oracle была создана в качестве справочника по поддержке и обучению Oracle для использования нашими специалистами-консультантами по настройке производительности администраторов баз данных. Не стесняйтесь задавать вопросы на нашем форуме Oracle.

Проверьте опыт! Любой, кто рассматривает возможность использования услуг эксперта службы поддержки Oracle, должен самостоятельно проверить свои полномочия и опыт, а не полагаться на рекламу и самопровозглашенный опыт. Все законные эксперты Oracle публикуют свои квалификации Oracle.

Ошибки? Технология Oracle меняется, и мы стараемся обновлять нашу информацию о поддержке BC Oracle. Если вы обнаружите ошибку или у вас есть предложение по улучшению нашего контента, мы будем признательны за ваш отзыв. Просто электронная почта:

и укажите URL-адрес страницы.


Burleson Consulting

Оракул поддержки баз данных

В этом учебном пособии Oracle объясняется, как использовать оператор Oracle ALTER TABLE для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы (с синтаксисом, примерами и практическими упражнениями).

Описание

Инструкция Oracle ALTER TABLE используется для добавления, изменения или удаления/удаления столбцов в таблице. Оператор Oracle ALTER TABLE также используется для переименования таблицы.

Добавить столбец в таблицу

Синтаксис

Для ДОБАВЛЕНИЯ СТОЛБЦА в таблицу используется следующий синтаксис Oracle ALTER TABLE:

Пример

Давайте рассмотрим пример, показывающий, как добавить столбец в таблицу Oracle с помощью инструкции ALTER TABLE.

Этот пример Oracle ALTER TABLE добавит столбец с именем customer_name в таблицу customers с типом данных varchar2(45).

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

В этом примере столбец с именем city был добавлен в таблицу customers с типом данных varchar2(40) и значением по умолчанию "Сиэтл".

Добавить несколько столбцов в таблицу

Синтаксис

Для ДОБАВЛЕНИЯ НЕСКОЛЬКИХ СТОЛБЦОВ в существующую таблицу используется следующий синтаксис Oracle ALTER TABLE:

Пример

Давайте рассмотрим пример, показывающий, как добавить несколько столбцов в таблицу Oracle с помощью инструкции ALTER TABLE.

В этом примере Oracle ALTER TABLE будут добавлены два столбца: customer_name в виде поля varchar2(45) и city в виде поля varchar2(40) со значением по умолчанию ' Сиэтл" в таблицу customers.

Изменить столбец в таблице

Синтаксис

Чтобы ИЗМЕНИТЬ СТОЛБЦ в существующей таблице, Oracle ALTER TABLE использует следующий синтаксис:

Пример

Давайте рассмотрим пример, показывающий, как изменить столбец в таблице Oracle с помощью инструкции ALTER TABLE.

В этом примере Oracle ALTER TABLE столбец с именем customer_name изменит тип данных varchar2(100) и заставит столбец не допускать пустых значений.

В более сложном примере вы можете использовать оператор ALTER TABLE, чтобы добавить значение по умолчанию, а также изменить определение столбца:

В этом примере инструкция ALTER TABLE изменит столбец с именем city, чтобы он имел тип данных varchar2(75), значение по умолчанию будет установлено на "Сиэтл", а столбец будет установлен, чтобы не допускать пустых значений.

Изменить несколько столбцов в таблице

Синтаксис

Для ИЗМЕНЕНИЯ НЕСКОЛЬКИХ СТОЛБЦОВ в существующей таблице используется следующий синтаксис Oracle ALTER TABLE:

Пример

Давайте рассмотрим пример, показывающий, как изменить несколько столбцов в таблице Oracle с помощью инструкции ALTER TABLE.

В этом примере Oracle ALTER TABLE будут изменены столбцы customer_name и city. Столбец customer_name будет иметь тип данных varchar2(100) и не допускает пустых значений. Столбец city будет иметь тип данных varchar2(75), его значение по умолчанию будет установлено на "Сиэтл", а в столбце не будут приниматься нулевые значения.

Удалить столбец в таблице

Синтаксис

Чтобы УДАЛИТЬ СТОЛБЦ в существующей таблице, Oracle ALTER TABLE использует следующий синтаксис:

Пример

Давайте рассмотрим пример, показывающий, как удалить столбец в таблице Oracle с помощью оператора ALTER TABLE.

В этом примере Oracle ALTER TABLE будет удален столбец с именем customer_name из таблицы с именем customers.

Переименовать столбец в таблице
(НОВОЕ в Oracle 9i Release 2)

Синтаксис

Начиная с Oracle 9i Release 2 теперь вы можете переименовывать столбец.

Чтобы ПЕРЕИМЕНОВАТЬ СТОЛБЦ в существующей таблице, Oracle ALTER TABLE использует следующий синтаксис:

Пример

Давайте рассмотрим пример, показывающий, как переименовать столбец в таблице Oracle с помощью инструкции ALTER TABLE.

В этом примере Oracle ALTER TABLE столбец с именем customer_name переименовывается в cname.

Переименовать таблицу

Синтаксис

Для ПЕРЕИМЕНОВАНИЯ ТАБЛИЦЫ используется следующий синтаксис Oracle ALTER TABLE:

Пример

Давайте рассмотрим пример, показывающий, как переименовать таблицу в Oracle с помощью оператора ALTER TABLE.

В этом примере Oracle ALTER TABLE таблица customers будет переименована в contacts.

Исходя из приведенной ниже таблицы departments, переименуйте таблицу departments в depts.

Следующий оператор Oracle ALTER TABLE переименует таблицу departments в depts:

Исходя из приведенной ниже таблицы employees, добавьте столбец с именем bonus, который представляет собой числовой тип данных (6).

Следующий оператор Oracle ALTER TABLE добавит столбец bonus в таблицу employees:

Исходя из приведенной ниже таблицы customers, добавьте два столбца: один столбец с именем имя_контакта, тип данных varchar2(50), и один столбец с именем last_contacted это тип данных даты.

Следующий оператор Oracle ALTER TABLE добавит столбцы contact_name и last_contacted в таблицу customers:

Исходя из приведенной ниже таблицы employees, измените столбец employee_name на тип данных varchar2(75).

Следующий оператор Oracle ALTER TABLE изменит тип данных для столбца employee_name на varchar2(75):

Исходя из приведенной ниже таблицы customers, измените столбец customer_name, чтобы он НЕ допускал пустых значений, и измените столбец state на varchar2(2 ) тип данных.

Следующий оператор Oracle ALTER TABLE изменит столбцы customer_name и state в таблице customers соответствующим образом:

Исходя из приведенной ниже таблицы сотрудники, удалите столбец зарплата.

Следующий оператор Oracle ALTER TABLE удалит столбец salary из таблицы employees:

Исходя из приведенной ниже таблицы departments, переименуйте столбец department_name в dept_name.

Следующий оператор Oracle ALTER TABLE переименует столбец department_name в dept_name в таблице departments:

Читайте также: