упрощение создания пакетов и представлений - PullRequest
1 голос
/ 13 октября 2009

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

Есть ли способ разделить эти два сценария, который бы затем индивидуально создавал только пакеты или представления соответственно.

Или любой альтернативный вариант работы над этим.

Ответы [ 3 ]

4 голосов
/ 13 октября 2009

Сначала создайте спецификации пакета.

Во-вторых, создайте представления - они ссылаются на спецификацию, а не на тело.

В-третьих, создайте тела пакетов - они ссылаются на представления.

3 голосов
/ 13 октября 2009

Вы можете сначала создать все свои представления, используя синтаксис

CREATE OR REPLACE FORCE VIEW

, который создает представление, даже если указанные объекты еще не существуют, затем создайте все спецификации пакета, а затем тела.

Теперь вы можете скомпилировать все недействительные объекты или просто позволить Oracle позаботиться об этом (см. Эту ссылку)

Спроси Тома - "недопустимые объекты"

1 голос
/ 13 октября 2009

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

Так что вам нужно создать набор скриптов views1.sql, views2.sql, ... и packages1.sql, packages2.sql, ... Views1.sql содержит только те представления, которые не ссылаются ни на какие пакеты. Packages1.sql содержит только пакеты, которые не ссылаются на какие-либо представления. Views2.sql содержит только те представления, которые ссылаются на пакеты из packages1.sql. Packages2.sql содержит только пакеты, которые ссылаются на представления из views1.sql.

И так до тех пор, пока вы не закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...