对于给定的表和该表中一条记录的唯一ID,生成创建该记录副本的PL / SQL(或SQL)脚本最简单/最快的是什么,然后创建副本来自与该记录具有外键关系的表的所有记录,然后是与这些第二层记录具有外键关系的所有表,依此类推,直到模式中所有直接或间接相关的表中的所有相关记录都被复制为止?
这样的脚本在捕获和复制记录状态以及所有后代记录时非常有用。
考虑:
感谢。
答案 0 :(得分:1)
假设FK存在且有效,您将从dba_constraints开始,从r_constraint_name =起始表的PK约束开始。对于找到的每个表,您将查询dba_tab_columns并从此处构建查询和生成的插入。您将以递归方式执行此操作以捕获树中的所有表。为了方便起见,我将生成一个存储过程table_ins包装器,这样当你生成INSERT时,你可以调用store_proc来避免为每一行生成INSERT(col1,....)。