日期:2014-05-16  浏览次数:20936 次

Oracle遍历当前用户下的所有表,并从通过dblink从另一个用户下同名的表中获取数据插入
现在有两个用户A和B,用户A下的表是用户B下表的子集,现在每天需要执行的操作是:将B用户表中符合一定查询条件的数据插入A用户的表中,A用户下表的个数并不固定,以后可能增加或删除,但总是符合是B用户下表的子集。

我的思路是:
遍历A用户下的所有表,并从通过dblink从B用户下同名的表中获取数据插入,求教这个过程该怎么写?
Oracle 遍历

------解决方案--------------------
这很简单。 
dba_tables,dba_tab_columns,以及动态语句可以解决。剩下的就是简单的循环控制逻辑。
类似作用的视图也可以完成这些功能。
------解决方案--------------------
这必须借助用户视图和动态语句才能实现。我的想法是,利用dba用户先把用户a的所有的表查出来,利用游标进行保存。然后逐个循环的查出每个表名后,用动态语句来实现表与表之间的插入数据。