написать оператор выбора, который должен возвращать все объекты

avatar
Sudhakar Nelapati
8 апреля 2018 в 07:09
35
3
-3

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

Источник

Ответы (3)

avatar
Littlefoot
8 апреля 2018 в 08:49
1

Помимо того, что вам уже сказали, попробуйте запомнить слово "словарь"; иногда это удивительно полезно.

Например, вам нужно найти некоторую информацию об ограничениях, но вы не знаете, какой источник использовать - словарь знает, просто спросите:

SQL> col comments format a48
SQL> select * from dictionary
  2  where lower(comments) like '%constraint%'
  3  order by table_name;

TABLE_NAME                     COMMENTS
------------------------------ ------------------------------------------------
ALL_CONS_COLUMNS               Information about accessible columns in constrai
                               nt definitions

ALL_CONSTRAINTS                Constraint definitions on accessible tables
USER_CONS_COLUMNS              Information about accessible columns in constrai
                               nt definitions

USER_CONSTRAINTS               Constraint definitions on user's own tables

SQL>

Итак,

  • вы могли бы прочитать документацию Oracle и узнать подобные вещи (что является лучшим вариантом; никто не сможет украсть ваши знания), или
  • Погуглите (это то, что обычно делает большинство людей, и вы не поверите, у них это получается), или
  • задайте вопрос где-нибудь в Интернете и ждите, пока какая-нибудь добрая душа принесет вам спасение, или
  • сдавайся и иди картошку сажать
avatar
APC
8 апреля 2018 в 07:33
1

Эту информацию можно получить из словаря данных:

  • имена таблиц = all_tables
  • имена столбцов = all_tab_columns
  • ограничения = all_constraints
  • индексы = all_indexes
  • разделы = all_tab_partitions

Например

select table_name
from all_tables
where owner = 'WHOEVER';

Вот ссылка на определение представлений словаря данных в Справочном руководстве Oracle.

ALL_ просматривает только те объекты, на которые вам предоставлены права доступа. Если у вас есть права DBA, вы можете использовать эквивалент DBA_, который показывает все объекты во всех схемах.

avatar
Koen
8 апреля 2018 в 07:18
0

Oracle предоставляет множество представлений, информирующих вас о структуре базы данных. Несколько примеров: user_tab_columns, v$tablespace и многие другие. Найдите в Oracle «Представления словаря данных таблиц» для получения дополнительной информации.

Sudhakar Nelapati
8 апреля 2018 в 10:03
0

Большое спасибо за ваш ответ. Я получил хорошую информацию о словарных таблицах. Мне нужна еще одна помощь: в одном запросе на выбор нам нужна вся информация ниже. Ниже подробности в одном запросе. имена таблиц = все_таблицы имена столбцов = все_столбцы_вкладок ограничения = все_ограничения индексы = все_индексы разделы = все_разделы_вкладок