【发布时间】:2018-11-02 15:21:02
【问题描述】:
有什么方法可以验证我是否成功插入辅助表,然后在不使用触发器的情况下从原始表中删除这些行。
所以我有这个查询:有 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;
提前谢谢你。
【问题讨论】:
-
提示:试试
returning into子句。 -
要使用返回我需要删除然后插入?我以前从未使用过它
-
为什么不使用 SQL%ROWCOUNT SQL 属性来统计行数?
-
我可以理解巴巴多斯的想法,如果我知道我将使用的所有列,但我不知道,所以我认为这行不通。 Ankit 你知道我可以看看的任何例子吗?
-
criado_em<'|| SYSDATE非常糟糕。使用criado_em < :d'; EXECUTE IMMEDIATE testes USING SYSDATE;
标签: sql oracle plsql sql-insert sql-delete