Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / execute immediate inside begin...end block / 2 сообщений из 2, страница 1 из 1
16.11.2020, 11:20
    #40018710
x17.mstu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute immediate inside begin...end block
Есть блок begin ...end

BEGIN
execute immediate 'ALTER TABLE p1 RENAME to p1_tmp;
execute immediate 'Create table p1 () partition py range (rep_date)';
execute immeidate 'Insert /*+ append */ into p1 ()Select * from p1_tmp';
execute immedita 'Drop table p1_tmp';
END;

Нужен ли комит после execute immeidate 'Insert /*+ append */ into p1 ()Select * from p1_tmp';?

И как сделать так чтобы если хотя бы одно выражение execute immediate не выполнилось то остальные execute immediate откатились обратно
Например если exec 1 выполнился успешно, а exec 2 не выполнился , то нужно сделать откат exec 1
...
Рейтинг: 0 / 0
16.11.2020, 11:42
    #40018721
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
execute immediate inside begin...end block
x17.mstu,

Перепутали форумную ветку? В Oracle DDL откату не подлежит. Хотите откатить alter - пишите обратный.

А вообще, озвучьте версию Oracle и что вы пытаетесь сделать. Навскидку, либо alter table .. partition by .., либо dbms_redifinition
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / execute immediate inside begin...end block / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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