有什么方法可以验证我的插入表是否成功插入辅助表,然后在不使用触发器的情况下从原始表中删除这些行。
所以我有这个查询:有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;
谢谢。
答案 0 :(得分:0)
如果找不到任何方法,这是使用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;