Эта статья могла бы быть полезной: Создают Мобильное и Настольно-дружественное Приложение в Django за 15 Минут
Если вы хотите увидеть DDL для объектов, вы можете использовать
select dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','OBJECT_OWNER')
from dual
/
Например, это даст вам сценарий DDL для таблицы emp
.
select dbms_metadata.get_ddl('TABLE','EMP','HR')
from dual
/
Вы можете необходимо установить формат типа длинный
на большое число. Для пакетов вам потребуется доступ к таблицам dba_source, user_source, all_source
. Вы можете запросить имя и тип объекта, чтобы узнать, какой код хранится.
The basic answer appears to be 'use the dbms_metadata package'. The axuilliary question is:
But what if I want to generate a script for all the tables at a time?
And the answer, presumably, is to interrogate the system catalog for the names and owners of all the tables:
SELECT dbms_metadata.get_ddl('TABLE', s.tabname, s.tabowner)
FROM system_catalog_describing_tables AS s
WHERE ...any conditions that are needed...
I'm not sufficiently familiar with Oracle to know the system catalog. In Informix, which I do know, assuming that there was a procedure dbms_metadata.get_ddl
, the query would be:
SELECT dbms_metadata.get_ddl('TABLE', s.tabname, s.owner)
FROM "informix".systables AS s
WHERE tabid >= 100 AND tabtype = 'T';
In Informix, tabids less than 100 are reserved for the system catalog, and non-tables (views, synonyms, sequences and a few other esoteric things) are excluded by requiring the right 'tabtype'.
Я не знал о DMBS_METADATA, но ваши ответы побудили меня создать утилиту для создания сценариев всех объектов, принадлежащих пользователю Oracle .
В Oracle место, содержащее информацию обо всех объектах базы данных, включая таблицы и хранимые процедуры, называется словарем данных. Это набор представлений, который предоставляет вам доступ к метаданным, определяющим базу данных. Вы можете запросить в представлениях словаря данных список требуемых объектов базы данных, а затем использовать функции, доступные в пакете dbms_metadata
, чтобы получить DDL для каждого объекта. Альтернативой является изучение поддержки в dbms_metadata
экспорта DDL для коллекции объектов.
Для нескольких указателей: например, чтобы получить список таблиц, вы можете использовать следующие представления словаря данных
user_tables
, содержащие все таблицы, принадлежащие пользователю all_tables
содержат все таблицы, к которым имеет доступ пользователь