преобразовать editionable процедуру в noneditionable

Всё по теме СУБД Oracle: установка, настройка, использование, решение проблем и т.д. и т.п. и др. и пр.
Ответить
legg
Сообщения: 3
Зарегистрирован: Ср мар 29, 2023 2:07 pm

преобразовать editionable процедуру в noneditionable

Сообщение legg »

Здравствуйте!
Существует ли какой-нибудь универсальный простой способ превращения editionable процедуры , имеющей версии в разных едишнах в noneditionable?
Можно ли сделать это одним скриптом?
пока что пользую неуклюжий способ генерации итогового скрипта подготовительным:
делай раз

Код: Выделить всё

declare
str varchar2 (20000) := 'declare
begin
  begin
    execute immediate ''drop procedure tst1'';
  exception when others then null;
  end;
  begin
    execute immediate ''drop procedure tst2'';
  exception when others then null;
  end;
end;
/  ';
begin
  dbms_output.enable(1000000000);
  for ii in (select  tt.* from all_editions tt
      where USABLE='YES'
     connect by  prior tt.edition_name=tt.parent_edition_name
     start with tt.edition_name='ORA$BASE'
     order by level )  loop
     dbms_output.put_line ('
     begin
       DBMS_SESSION.SET_EDITION_DEFERRED(''"'||ii.edition_name||'"'');
     end;
/
       '||str);

  end loop;
         dbms_output.put_line ('create or replace noneditionable procedure tst1 is
         begin
           null;
           end;
/
create or replace noneditionable procedure tst2 is
         begin
           null;
           end;
/');
end;
делай два: копируем и выполняем то что скрипт нам вывел в терминал.

есть ли способ сделать все в один проход?
или вообще как то проще?
Аватара пользователя
SQL*Plus
Сообщения: 208
Зарегистрирован: Ср апр 20, 2022 1:09 pm

Re: преобразовать editionable процедуру в noneditionable

Сообщение SQL*Plus »

С какой целью вы хотите преобразовать editionable процедуру в noneditionable?
Чем именно вас не устраивает её текущее состояние (editionable)?

Какую версию Oracle Database вы используете?
legg
Сообщения: 3
Зарегистрирован: Ср мар 29, 2023 2:07 pm

Re: преобразовать editionable процедуру в noneditionable

Сообщение legg »

начал долго и нудно описывать как мы дошли до жизни такой и внезапно нашел бОльшую часть решения текущих проблем))) спасибо.
переделывать из версионированного объекты в версионированный действительно смысла не оказалось )
Аватара пользователя
SQL*Plus
Сообщения: 208
Зарегистрирован: Ср апр 20, 2022 1:09 pm

Re: преобразовать editionable процедуру в noneditionable

Сообщение SQL*Plus »

Вот видите, как удачно получилось!
Начали объяснять другим, а заодно сами поняли это! :-)
Аватара пользователя
SQL*Plus
Сообщения: 208
Зарегистрирован: Ср апр 20, 2022 1:09 pm

Re: преобразовать editionable процедуру в noneditionable

Сообщение SQL*Plus »

legg писал(а): Ср мар 29, 2023 4:36 pm переделывать из версионированного объекты в версионированный действительно смысла не оказалось )
Предполагаю, что здесь вкралась опечатка.

Должно было быть так:
переделывать из версионированного объекты в НЕверсионированный действительно смысла не оказалось )
Ага?
Аватара пользователя
SQL*Plus
Сообщения: 208
Зарегистрирован: Ср апр 20, 2022 1:09 pm

Re: преобразовать editionable процедуру в noneditionable

Сообщение SQL*Plus »

По поводу терминологии мы в свое время (лет 10+ тому назад) обсуждали её с коллегами "по цеху" (Игорем Мельниковым и другими).
Пришли к выводу, что по-русски лучше всего в данном употреблении слова "Edition" переводить его, как "Ревизия".

Тогда получаем во такой Глоссарий, в котором несуществующие (свежеизобретенные) английские слова
заменены несуществующими (свежеизобретенными) русскими словами... :-)
Глоссарий писал(а):
Edition-based Redefinition (EBR) = Ревизионное переопределение

Edition – ревизия
Edition-based – ревизионный, на основе ревизий
Editioned – ревизионированный, ревизионирован(а), ревизионируем(ы/а)
Noneditioned – неревизионированный
Editionable – ревизионируемый
Noneditionable – неревизионируемый
Editioning view – ревизионирующее представление
Editions-enabled – ревизионно-полномочный
Crossedition – кросс-ревизионный
Forward crossedition trigger – прогрессивный кросс-ревизионный триггер
Reverse crossedition trigger – регрессивный кросс-ревизионный триггер
Таким образом мы избегаем неоднозначности:
Edition обычно воспринимается, как редакция СУБД, но в данном случае это не оно.
Версия обычно воспринимается, как версия СУБД, но в данном случае это тоже не оно.
legg
Сообщения: 3
Зарегистрирован: Ср мар 29, 2023 2:07 pm

Re: преобразовать editionable процедуру в noneditionable

Сообщение legg »

SQL*Plus писал(а): Ср мар 29, 2023 5:10 pm
legg писал(а): Ср мар 29, 2023 4:36 pm переделывать из версионированного объекты в версионированный действительно смысла не оказалось )
Предполагаю, что здесь вкралась опечатка.

Должно было быть так:
переделывать из версионированного объекты в НЕверсионированный действительно смысла не оказалось )
Ага?
Совершенно верно :twisted:
SQL*Plus писал(а): Ср мар 29, 2023 5:04 pm Вот видите, как удачно получилось!
Начали объяснять другим, а заодно сами поняли это! :-)
Частенько так получается) но ведь реально помогло
Ответить