powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Редактирование представление
18 сообщений из 18, страница 1 из 1
Редактирование представление
    #40128670
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была одна таблица из которой удалили поле и перенесли его в другую таблицы. Теперь используется представление вместо таблицы

Код: sql
1.
2.
3.
4.
Select t.field1, t2.field2
From table1 t
Left join table11 t1 on t.id = t1.id1
Left join table2 t2 on t2.id = t1.ff




Как в этом представлении сделать редактирование поле field2?
...
Рейтинг: 0 / 0
Редактирование представление
    #40128682
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
INSTEAD OF триггера.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Редактирование представление
    #40128689
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
Была одна таблица из которой удалили поле и перенесли его в другую таблицы. Теперь используется представление вместо таблицы

Код: sql
1.
2.
3.
4.
Select t.field1, t2.field2
From table1 t
Left join table11 t1 on t.id = t1.id1
Left join table2 t2 on t2.id = t1.ff




Как в этом представлении сделать редактирование поле field2 ?


что это значит?
...
Рейтинг: 0 / 0
Редактирование представление
    #40128694
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин,

Что не понятно? Нужно редактировать view как table. Когда соединение через join вопросов нет, а вот через left join есть. Дмитрий подсказал решение, в понедельник попробую решить
...
Рейтинг: 0 / 0
Редактирование представление
    #40128707
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
Что не понятно?


Гражданин не понимает сути проблемы, но лезет с советами.
Для неофитов это нормально.
...
Рейтинг: 0 / 0
Редактирование представление
    #40128709
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm, судя по количеству его сообщений он уже должен быть мастер йода))

Главное, что есть желание помочь
...
Рейтинг: 0 / 0
Редактирование представление
    #40128710
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb

... Дмитрий подсказал решение, в понедельник попробую решить

попробуйте принять в расчет, что это решение, но решение хрустальное.

ваш триггер автоматически потеряется при любом последующем create or replace view.

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

Вы точно уверены, что сможете всегда определить - кто и когда ненароком или случайно дропнул ваш триггер, потому что ему в представлении надо было что-то подправить?
И да, с вероятностью 100%, первым таким человеком окажетесь вы сами.
...
Рейтинг: 0 / 0
Редактирование представление
    #40128711
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
cptngrb
Что не понятно?


Гражданин не понимает сути проблемы, но лезет с советами.
Для неофитов это нормально.


кто же этот "гражданин"?
...
Рейтинг: 0 / 0
Редактирование представление
    #40128714
ASNexus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
booby
cptngrb

... Дмитрий подсказал решение, в понедельник попробую решить

попробуйте принять в расчет, что это решение, но решение хрустальное.

ваш триггер автоматически потеряется при любом последующем create or replace view.

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

Вы точно уверены, что сможете всегда определить - кто и когда ненароком или случайно дропнул ваш триггер, потому что ему в представлении надо было что-то подправить?
И да, с вероятностью 100%, первым таким человеком окажетесь вы сами.


Так проблема может возникнуть только в случае неорганизованности процессов разработки. И то, самое страшное, что грозит, это после какого-то обновления представления (и дропа триггера, соответственно), операции апдейт будут падать - тот, чьё обновление к этому привело, хочешь-не хочешь, вынужден будет триггер сохранять и поддерживать.
Естественно, в нормальных условиях это выявляется на этапе тестирования, а не в проде.
...
Рейтинг: 0 / 0
Редактирование представление
    #40128716
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASNexus,


Сначала надо хотя бы знать, что модификация представления убивает триггер.
А уж страшно оно или нет - это результат оценки такого знания.
...
Рейтинг: 0 / 0
Редактирование представление
    #40128727
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нет никакого механизма предупреждать разработчика о бережном отношении к представления. Например, как checking exception Java?
...
Рейтинг: 0 / 0
Редактирование представление
    #40128728
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или триггер будет INVALID и разработчик это легко может в БД смотреть?
...
Рейтинг: 0 / 0
Редактирование представление
    #40128729
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
Или триггер будет INVALID и разработчик это легко может в БД смотреть?

нет .
Его просто не будет, он дропнется , если кто-то "случайно" применит create or replace view.
Смотреть можно, увидеть уже ничего нельзя - его больше нет .
...
Рейтинг: 0 / 0
Редактирование представление
    #40128733
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
А нет никакого механизма предупреждать разработчика о бережном отношении к представления. Например, как checking exception Java?

единственный известный мне способ - завести логирование объектов бд, с целью последующего расстрела всякого,
кто полезет в ваше представление.
А на своем носу зарубить -, что никакие - случайные или целенаправленные изменения представления не могут далее происходить,
без обязательного завершающего применения триггера.
Встав на эту дорогу однажды, вы всегда далее обязаны производить модификацию таким скриптом, который обязательно завершается восстановлением вашего триггера.

Это может работать, если вы знаете как верить в то, что ни сопереживающий вашему делу товарищ,
ни любопытствующий пользователь вашей "системы", вам точно ничего не сломают, а если сломают, то вы, как минимум,
теперь точно знаете, что именно это может и, по вероятности, будет ломаться в первую очередь.
...
Рейтинг: 0 / 0
Редактирование представление
    #40128736
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
create or replace view myView
as
select -- Не потеряй триггер ИнстедОфТриггер1
       t.field1,
       ****
...
Рейтинг: 0 / 0
Редактирование представление
    #40128737
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если кто-то решил заменить редактируемое представление нередактируемым - это его
собственное решение и, соответственно, все его (решения) последствия - на его
совести.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Редактирование представление
    #40128738
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Если кто-то решил заменить редактируемое представление нередактируемым - это его
собственное решение и, соответственно, все его (решения) последствия - на его
совести.
я всегда пытаюсь минимизировать риски потерь, в т.ч. и доп. комментариями
...
Рейтинг: 0 / 0
Редактирование представление
    #40128880
SQL*Plus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
Код: plsql
1.
2.
3.
4.
5.
create or replace view myView
as
select -- Не потеряй триггер ИнстедОфТриггер1
       t.field1,
       ****


Хорошая подсказка.
Поможет хотя бы при использовании GUI.

В Oracle 21c всё осталось по-прежнему без изменений:
OR REPLACESpecify OR REPLACE to re-create the view if it already exists. You can use this clause to
change the definition of an existing view without dropping, re-creating, and regranting
object privileges previously granted on it.

INSTEAD OF triggers defined on a conventional view are dropped when the view is recreated.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Редактирование представление
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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