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

Что такое невидимый столбец?

Невидимый столбец - это новая концепция в Oracle 12c. Это столбец в таблице, который:

  • Не отображается в определении таблицы, и
  • Не отображается в запросах SELECT *

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

Зачем использовать невидимый столбец?

Короче, для повышения безопасности.

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

Невидимый столбец работает примерно так же.

Как создать невидимый столбец?

Чтобы создать или определить невидимый столбец, вы можете использовать слово «НЕВИДИМЫЙ» при определении столбца.

СОЗДАТЬ ТАБЛИЦУ invis_test (

первый НОМЕР,

второй НОМЕР,

третий НОМЕР НЕВИДИМЫЙ

);

Столбец с именем «третий» является здесь невидимым столбцом, так как после него стоит слово НЕВИДИМЫЙ.

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

ALTER TABLE имя таблицы ИЗМЕНИТЬ имя столбца НЕВИДИМЫЙ;

Теперь столбец невидим.

Как использовать невидимый столбец?

Итак, теперь, когда у нас есть невидимый столбец в Oracle, как вы можете его использовать?

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

ВСТАВИТЬ invis_test VALUES (1, 2);

ВСТАВИТЬ invis_test (первое, второе, третье) ЗНАЧЕНИЯ (3, 4, 5);

Давайте ВЫБРАТЬ из этой таблицы.

ВЫБРАТЬ *

ОТ invis_test;

Вы заметите, что, хотя я запустил SELECT *, невидимые столбцы не отображаются. Это сделано специально - столбец невидим и не отображается в этих запросах.

Что, если я включу имена столбцов в запрос SELECT?

ВЫБЕРИТЕ первый, второй, третий

ОТ invis_test;

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

Итак, вот как работает невидимый столбец. Он позволяет обеспечить дополнительную безопасность в Oracle и выполняет ту же функцию, что и представления, но немного проще.