Як перевірити, чи синонім недійсний в Oracle?

admin | 4 Квітня, 2025


Ви можете перевірити, чи існує таблиця, об’єднавши ALL_TABLES (синонім може не бути в таблиці в одній схемі). Додайте умову і т. table_name має значення null, якщо вам потрібні синоніми, де таблиця не існує. Якщо ви хочете перевірити, чи є синонім ДІЙСНИМ запитом ALL_OBJECTS.

Дізнатися про синоніми можна запитати перегляд all_synonyms. Приклад 10-11 запитує all_synonyms, щоб знайти будь-які синоніми, які вказують на системне подання all_tables. Є два типи синонімів. Синоніми, якими володіє користувач, є приватними синонімами і впливають лише на цього користувача.

Щоб перевірити наявність недійсних об’єктів в Oracle, ви можете запустити такий оператор SQL: SELECT object_name, object_type FROM all_objects WHERE status = 'INVALID'; Цей запит поверне список усіх недійсних об’єктів у базі даних.

Синонім створює залежність від цільового об’єкта та стає недійсним якщо цільовий об'єкт змінено або видалено. Коли ви компілюєте недійсний синонім, він знову стає дійсним.

Публічні синоніми доступні всім користувачам. Проте кожен користувач повинен мати відповідні привілеї на базовий об'єкт, щоб використовувати синонім. Під час вирішення посилань на об’єкт Oracle Database використовує загальнодоступний синонім, лише якщо перед об’єктом не стоїть схема та за ним не йде посилання на базу даних.

Щоб переглянути синонім:

  1. На домашній сторінці Workspace клацніть SQL Workshop, а потім Object Browser. З’явиться браузер об’єктів.
  2. У списку Об’єкт виберіть Синоніми.
  3. На панелі «Вибір об’єкта» виберіть синонім. З’явиться вікно «Відомості про об’єкт», у якому відображаються наступні дані: «Власник синоніму». Синонім Назва. Власник об'єкта. Назва об'єкта.