|
execute immediate inside begin...end block
|
|||
---|---|---|---|
#18+
Есть блок 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 11:20 |
|
execute immediate inside begin...end block
|
|||
---|---|---|---|
#18+
x17.mstu, Перепутали форумную ветку? В Oracle DDL откату не подлежит. Хотите откатить alter - пишите обратный. А вообще, озвучьте версию Oracle и что вы пытаетесь сделать. Навскидку, либо alter table .. partition by .., либо dbms_redifinition ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2020, 11:42 |
|
|
start [/forum/topic.php?fid=52&msg=40018721&tid=1880712]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
137ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 509ms |
0 / 0 |