оракул проверить вставку затем удалить динамические таблицы - PullRequest
0 голосов
/ 02 ноября 2018

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

ТАК У меня есть этот запрос: есть 2 динамические таблицы n_tab и n_tab2

testes:= 'INSERT all into ' || n_tab2 || ' SELECT * FROM ' || n_tab || ' where criado_em< ' || SYSDATE;
EXECUTE IMMEDIATE testes;

после этой вставки я хотел бы проверить, все ли строки были вставлены, и после этого

stmt_del:= 'DELETE FROM ' || n_tab || ' WHERE EXISTS (SELECT 1
 FROM ' || n_tab2 || ' WHERE '  'need to find a way to associate the pk and fk dinamically'
EXECUTE IMMEDIATE testes;

Заранее спасибо.

1 Ответ

0 голосов
/ 02 ноября 2018

если не можете найти способ, вот способ использования SQL% ROWCOUNT

DECLARE

stmt varchar2(100);
mycolumn NUMBER := 100 ;

BEGIN

stmt := 'insert into mytable values('||mycolumn||')';
execute immediate stmt;
dbms_output.put_line('value '||SQL%ROWCOUNT);

IF SQL%ROWCOUNT > 1 THEN

stmt_del:= 'delete from mytable where condition';
EXECUTE IMMEDIATE testes;
END IF;

END;
...