Я новичок в Oracle. Не могли бы вы помочь мне написать запрос выбора, который должен возвращать имена таблиц, имена столбцов, ограничения, индексы, разделы для данного имени схемы. Пожалуйста, помогите с этим.
написать оператор выбора, который должен возвращать все объекты
8 апреля 2018 в 07:09
35
3
Ответы (3)
8 апреля 2018 в 08:49
Помимо того, что вам уже сказали, попробуйте запомнить слово "словарь"; иногда это удивительно полезно.
Например, вам нужно найти некоторую информацию об ограничениях, но вы не знаете, какой источник использовать - словарь знает, просто спросите:
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 и узнать подобные вещи (что является лучшим вариантом; никто не сможет украсть ваши знания), или
- Погуглите (это то, что обычно делает большинство людей, и вы не поверите, у них это получается), или
- задайте вопрос где-нибудь в Интернете и ждите, пока какая-нибудь добрая душа принесет вам спасение, или
- сдавайся и иди картошку сажать
8 апреля 2018 в 07:33
Эту информацию можно получить из словаря данных:
- имена таблиц =
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_
, который показывает все объекты во всех схемах.
Большое спасибо за ваш ответ. Я получил хорошую информацию о словарных таблицах. Мне нужна еще одна помощь: в одном запросе на выбор нам нужна вся информация ниже. Ниже подробности в одном запросе. имена таблиц = все_таблицы имена столбцов = все_столбцы_вкладок ограничения = все_ограничения индексы = все_индексы разделы = все_разделы_вкладок