Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Новое

Публичные и частные синонимы

Публичные и частные синонимыВ Oracle можно создавать публичные синонимы, доступные всем пользователям базы данных, и частные, видимые только их владельцам. При создании публичного синонима следует обязательно использовать ключевое слово PUBLIC; в противном случае его нужно опускать (ключевого слова PRIVATE не существует). В Oracle можно создать синонимы для следующих типов объектов: таблиц, представлений, последовательностей, хранимых процедур, функций, пакетов, материализованных представлений и объектов схем классов Java. Также можно создавать синонимы и для других синонимов. Можно создавать синонимы и для объектов, расположенных в удаленных базах данных, конечно, если существует Связь с этой базой данных. (О связях между базами данных читайте далее.) В следующем примере создается публичный синоним SHIPMENT для гипотетической таблицы

В примере ниже иллюстрируется создание частного синонима EMP для таблицы USERn. EMPLOYEE в схеме

Из приведенной инструкции можно исключить USER2, если она отправляется именно этим пользователем.

В то же время этот префикс обязателен, если, например, синоним EMP создается для пользователя USER2 администратором базы данных. Несмотря на всю свою эффективность, синонимы могут стать причиной серьезной путаницы в программе. Наиболее типична ситуация, когда в схеме существует объект, одноименный с публичным или частным псевдонимом. В этом случае Oracle разрешает конфликт следующим образом. В первую очередь объект ищется в локальной схеме, и если имя там обнаруживается, СУБД предполагает, что нашла нужный объект. Так что если в базе данных присутствуют представления useri. VIEW1 и user2.viewi, при этом для посленего создан псевдоним viewi, предназначенный для использования во всех запросах пользователя, у пользователя USER1 могут возникнуть серьезные программные ошибки, если имена столбцов в его представлении viewi отличаются от user2.viewi.