Меню

Как я могу найти какие таблицы ссылаются на данную таблицу в Oracle SQL Developer

Как я могу найти, какие таблицы ссылаются на данную таблицу в Oracle SQL Developer?

на Oracle SQL Developer, если я просматриваю информацию в таблице, я могу просмотреть ограничения, которые позволяют мне видеть внешние ключи (и, следовательно, на какие таблицы ссылается эта таблица), и я могу просмотреть зависимости, чтобы увидеть, какие пакеты и такие ссылки на таблицу. Но я не уверен, как найти, какие таблицы ссылаются на таблицу.

например, скажем, я смотрю на emp таблица. Есть еще одна таблица emp_dept который захватывает, какие сотрудники работают в каких отделах, которые ссылаются на emp в таблице emp_id первичный ключ emp таблица. Есть ли способ (через некоторый элемент пользовательского интерфейса в программе, а не через SQL) найти, что emp_dept таблица ссылок emp таблица, без меня, чтобы знать, что таблицы?

7 ответов

нет. В Oracle SQL Developer нет такой опции.

вы должны выполнить запрос вручную или использовать другой инструмент (к примеру разработчик PLSQL есть такая опция). Следующий SQL-это тот, который используется разработчиком PLSQL:

здесь r_owner — Это схема, и r_table_name — это таблица, для которой вы ищете ссылки. Имена чувствительны к регистру

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

чтобы добавить это в SQL Developer в качестве расширения, выполните следующие действия:

  1. сохраните приведенный ниже код в xml-файл (например, fk_ref.XML-код):

    добавьте расширение в SQL Developer:

    • Инструменты > Предпочтения
    • База Данных > Пользовательские Расширения
    • Нажмите кнопку «добавить строку»
    • в типе выберите «редактор», место, где вы сохранили xml-файл выше
    • Нажмите » Ok» затем перезапустите SQL Developer

    перейдите к любой таблице, и теперь вы должны увидеть дополнительную вкладку рядом с SQL one, помеченную FK References, которая отображает новую информацию FK.

    Источник

    Получить список всех таблиц в Oracle?

    Как я могу выполнить запрос к владельцу Oracle da SELECT , table_name FROM dba_tables ase, чтобы отображать имена всех DBA_TABLESles в нем?

    Ответов: 19

    1202 ов принято

    Предполагается, что у вас есть доступ к SELECT_CATALOG_ROLE данным SYSionary view. Если вы не обладаете этими привилегиями, но нуждаетесь в них, вы можете запросить, чтобы администратор базы данных явно предоставлял вам привилегии в этой таблице или что администратор баз данных предоставляет вам SYSTEM привилегию или DBA_TABLES роль (любой из которых позволит вам запрашивать любые данные ALL_TABLESionary table ). Конечно, вы можете исключить определенные схемы, например, и которые имеют большое количество таблиц Oracle, которые вам, вероятно, не нужны . SELECT owner, table_name FROM all_tables ALL_TABLES

    Кроме того, если у вас нет доступа USER_TABLES , вы можете увидеть все таблицы, к которым ваша учетная запись имеет доступ через представление: SELECT table_name FROM user_tables

    Хотя это может быть подмножество таблиц, доступных в базе данных ( OWNER показывает вам информацию для всех таблиц, которым был предоставлен ваш пользователь).

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

    Поскольку у вас TABS есть только информация о таблицах, которыми вы владеете, у нее нет CAT столбца — владелец, по определению, это вы.

    Oracle также имеет ряд устаревших представлений словаря данных -. и TAB , например DICT , TAB — CAT которые могут быть использованы. В общем, я бы не предложил использовать эти устаревшие представления, если вам не нужно полностью использовать ваши сценарии для Oracle 6. Oracle не изменил эти представления за долгое время, поэтому у них часто возникают проблемы с новыми типами объектов. Например, в представлениях TAB и [DBA|ALL|USER]_TABLES представлениях отображается информация о таблицах, которые находятся в корзине пользователя, в то время как CAT все виды фильтруют их. TABLE_TYPE также показывает информацию о материализованных журналах просмотра с DICT таблицей «ТАБЛИЦА», которая вряд ли будет тем, что вы действительно хотите. DICT объединяет таблицы и синонимы и не говорит вам, кому принадлежит объект.

    Источник

    

    База данных Oracle. Структура и основные понятия СУБД Oracle

    Oracle Database — это объектно-реляционная СУБД (система управления базами данных), созданная компанией Oracle. В настоящее время она имеет множество разных версий и типов. Однако в этой статье мы поговорим не о видах баз данных Oracle, а о структуре и основных концепциях, которые относятся к СУБД Oracle Database. Поняв архитектуру СУБД Oracle, вы заложите фундамент, необходимый для понимания прочих средств (а они весьма обширны), предоставляемых базой данных Oracle.

    Базы данных Oracle: экземпляры и сущности

    СУБД Oracle Database включает в себя физические и логические компоненты. Особого упоминания заслуживает понятие экземпляра. Замечено, что некоторые используют термины «база данных» и «экземпляр» в качестве синонимов. Да, это взаимосвязанные, но всё же разные вещи. База данных в терминологии Oracle — это физическое хранилище информации, а экземпляр — это программное обеспечение, которое работает на сервере и предоставляет доступ к информации, содержащейся в базе данных Oracle. Экземпляр исполняется на конкретном сервере либо компьютере, в то самое время как база данных хранится на дисках, подключённых к этому серверу:

    instans_and_Oracle_Database_1-20219-067a61.jpg

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

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

    Если упрощённо, то экземпляр — это мост к базе данных, а сама БД – это остров. Когда экземпляр запущен, мост работает, а данные способны попадать в базу данных Oracle и покидать её. Если мост перекрыт (экземпляр остановлен), пользователи не могут обращаться к базе данных, несмотря на то, что физически она никуда не исчезла.

    Структура базы данных Oracle

    База данных Oracle включает в себя: — табличные пространства; — управляющие файлы; — журналы; — архивные журналы; — файлы трассировки изменения блоков; — ретроспективные журналы; — файлы резервных копий (RMAN).

    Табличные пространства Oracle

    Любые данные, которые хранятся в базе данных Oracle, просто обязаны существовать в каком-либо табличном пространстве. Под табличным пространством (tablespace) понимают логическую структуру, то есть вы не сможете попросить ОС показать вам табличное пространство Oracle.

    При этом каждое табличное пространство включает в себя физические структуры, называемые файлами данных (data files). Одно табличное пространство Oracle способно содержать один либо несколько файлов данных, в то время как каждый файл данных может принадлежать лишь одному tablespace. Создавая таблицу, мы можем указать, в какое именно табличное пространство мы её поместим — Oracle находит для неё место в каком-нибудь из файлов данных, которые составляют указанное табличное пространство.

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

    tablespaces_data_files_Oracle_1-20219-802832.jpg

    Создавая новую таблицу, мы можем поместить её в табличное пространство DATA1 либо DATA2. Таким образом, физически наша таблица окажется в одном из файлов данных, которые составляют указанное табличное пространство.

    Файлы базы данных Oracle

    База данных Oracle может включать в себя физические файлы 3-х основных типов: • control files — управляющие файлы; • data files — файлы данных; • redo log files — журнальные файлы либо журналы.

    Посмотрим на отношения между ними:

    oracle_database_files_1-20219-34b3e2.jpg

    В управляющих файлах содержится информация о местонахождении других физических файлов, которые составляют базу данных Oracle, — речь идёт о файлах данных и журналов. Также там хранится важная информация о содержимом и состоянии БД Oracle. Что это за информация: • имя базы данных Oracle; • время создания БД; • имена и местонахождение журнальных файлов и файлов данных; • информация о табличных пространствах; • информация об архивных журналах; • история журналов, порядковый номер текущего журнала; • информация о файлах данных в автономном режиме; • информация о резервных копиях, контрольных точках, копиях файлов данных.

    При этом функция управляющих файлов не ограничивается хранением важной информации, нужной при запуске экземпляра, — полезны они и в процессе удалении БД Oracle. К примеру, уже с версии Oracle Database 10g можно посредством команды DROP DATABASE удалить все файлы, которые перечислены в управляющем файле БД, включая сам управляющий файл.

    Инициализация СУБД Oracle

    Когда вы запускаете экземпляр Oracle, происходит считывание параметров инициализации. Параметры определяют, каким образом базе данных Oracle следует использовать физическую инфраструктуру и прочую конфигурационную информацию об экземпляре.

    Как правило, инициализационные параметры хранятся в файле параметров инициализации экземпляра (обычно это INIT.ORA) либо, начиная с Oracle9i, в репозитории, называемом файлом параметров сервера (SPFILE). С выходом каждой новой версии Oracle число обязательных параметров инициализации уменьшается.

    Кстати, в дистрибутиве Oracle можно найти пример файла инициализации, который пригоден для запуска базы данных. Также можно воспользоваться специальной программой Database Configuration Assistant (DCA) — она подскажет обязательные значения.

    Вот, к примеру, как выглядит список обязательных параметров инициализации для СУБД Oracle Database 11g: 1. Местонахождение управляющих файлов — CONTROLFILES . 2. Локальное имя БД — DB_NAME . 3. Имя домена БД Oracle — DBDOMAIN . 4. Местонахождение архивного журнала — LOGARCHIVEDEST . 5. Параметр, который включает архивирование журналов — LOG_ARCHIVE_DEST_STATE . 6. Местонахождение области быстрого восстановления — DBRECOVERYFILEDEST . 7. Наибольший размер области быстрого восстановления БД Oracle в байтах — DBRECOVERYFILEDESTSIZE . 8. Размер блока БД в байтах — DBBLOCKSIZE . 9. Наибольшее количество процессов ОС, которые обслуживают одновременный доступ к СУБД Oracle — PROCESSES . 10. Наибольшее число сеансов работы с БД — SESSIONS . 11. Наибольшее количество открытых курсоров в базе данных — OPEN_CURSORS . 12. Наименьшее количество разделяемых серверов базы данных Oracle — SHARED_SERVERS . 13. Имя удалённого прослушивателя — REM O TE_LI S TENER . 14. Версия СУБД Oracle, с которой должна поддерживаться совместимость — COMPATIBLE . 15. Размер области памяти, которая автоматически выделяется для PGA и SGA экземпляра — MEMORY_TARGET . 16. Время ожидания возможности установить монопольную блокировку до отправки сообщения об ошибке (для команд DDL) — DDLLOCKTIMEOUT . 17. Язык, который определён в подсистеме поддержки национальных языков для базы данных Oracle — NLS_LANGUAGE . 18. Территория, которая определена в подсистеме поддержки национальных языков для БД — NLS_TERRITORY .

    Более подробную информацию смотрите в официальной документации для СУБД Oracle Database.

    Источник

    Как найти связь между таблицами Oracle

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

    Условно у меня есть первая таблица, я хочу понять связана ли она как то с какой то другой таблицей:

    Для этого попытался сделать так: зашел d PLSQL Debeloper`е в other_Users —> далее нашел Юзера у кого есть эта таблица, открыл эту таблицу —> в ней открыл вкладку «Constraints». Скриншот:

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

    Вот что, как мне показалось понял и что не понял:

    1)В таблице есть главный и внешний ключ. Правда при самом запросе SELECT* from Table — название указанных ключей RTPL_PK и RTPL_RTPB_FK — не выгружается.
    2)В Столбец R_TABLE_NAME — указано название таблицы на какую ссылается «данная» таблица то есть ссылается на таблицу ICE_TABLES. Такая таблица сущесвует.

    В столбце R_CONSTRAINT_NAME указано наименование столбца PRTB_PK в таблице ICE_TABLES на которую ссылается «данная» таблица. Вот только проблема в том, что в таблице ICE_TABLES — нет столбца с названием PRTB_PK, а есть с названием PRTB_ID. И как это понимать, что то я не очень понимаю.

    3)Не понял, что такое R_OWNER. Нагуглил, что это некая «схема», но что это значит не понятно. Единственно, что понятно, что название в столбце R_OWNER — «TC» — совпадает с названием Users в котором две эти таблицы находятся.

    4)Так же меня смущают столбцы DELETE_RULE и STATUS — в которых напротив строки с «внешним ключом» стоит наименование NO_ACTION и DISABLED.
    Это значит, внешний ключ не работает или что ?

    5)И непонятно для чего столбца INDEX_ONWER и INDEX_NAME — что за информация в них указана и как ее нужно или можно использовать?

    Помощь в написании контрольных, курсовых и дипломных работ здесь.

    Источник

Читайте также:  Знаки препинания при прямой речи как их правильно расставлять и никогда не путаться
Adblock
detector