powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Dynamic SQL и DBA_DEPENDENCIES
4 сообщений из 4, страница 1 из 1
Dynamic SQL и DBA_DEPENDENCIES
    #39979352
-=SwiMMeR=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: Реализовать явные зависимости между объектами БД (хранимые процедуры и таблицы, представления и т.п.)
Суть: Есть условная процедура P(x), в которой есть динамический SQL, например, execute immediate 'truncate table t1'.
В DBA_DEPENDENCIES такая зависимость не отражается.
Надо, чтобы отражалась.
Решение: Добавить явную команду работы с таблицей/представлением и т.п.
Вопрос: Какую именно команду добавить с учетом того, что P(x) высоконагруженная и зависимые таблицы тоже?

Вариант решения: Создать внутри P(x) процедуру, в которой явно написать Select 1 from t1 where 1=0.
Процедуру никогда не вызывать.

Пойдет?

Минус такого варианта - описывать зависимости в описании хранимки.
Когда процедура на тысячи строк и в динамике используются разные объекты (все объекты - таблицы, представления, мат. представления), надо помнить о необходимости задать явную зависимость.
В идеале - поставить некую команду перед вызовом динамики с указанием используемых объектов. Какую?
...
Рейтинг: 0 / 0
Dynamic SQL и DBA_DEPENDENCIES
    #39979441
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=SwiMMeR=-,

LOCK TABLE, всё равно для truncate понадобится блокировка. Но в свете
P(x) высоконагруженная и зависимые таблицы тоже truncate выглядит весьма странно.
...
Рейтинг: 0 / 0
Dynamic SQL и DBA_DEPENDENCIES
    #39979512
-=SwiMMeR=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

truncate для примера.
В 99% случаев это Select.
...
Рейтинг: 0 / 0
Dynamic SQL и DBA_DEPENDENCIES
    #39979558
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-=SwiMMeR=-

Пойдет?



забросить такую идею "Реализовать неявные зависимости "

напр, как реализуете?

procedure p(p_table varchar2) as
execute immediate 'DROP TABLE '||p_table;
end;

если явно прописано
я б рядышком (шоб нагляднее) и уж очень надо
If заведомая ложь then
selerct count(1/0) from t1,t2,t3;
end if;

.....
stax
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Dynamic SQL и DBA_DEPENDENCIES
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]