如何动态定义嵌套表?

[复制链接]
查看11 | 回复7 | 2008-9-15 01:28:12 | 显示全部楼层 |阅读模式
有一个数据抽取的过程从A库的一些表,抽取到B库的中,而且定时同步。
为了一些比较蠢的需求(个人觉的),所以考虑使用批量插入和批量更新。
但是遇到一个问题,批量操作需要的嵌套表,如何去定义呢?
我的过程采用从配置表中读取配置参数的方式来确定需要抽取的表,在过程中,具体的表名是不确定的,因而无法在declare块中
直接定义嵌套表。
想了很久了,貌似我这中抽取方式,真的不能用批量处理么?
忘高手解答我的疑惑啊!!
[ 本帖最后由 jamaica123 于 2010-6-23 11:06 编辑 ]
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
哈哈,琢磨啊琢磨。。
终于灵光一闪,自己想出个办法来了。。
哈哈。。
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
啥办法?
结构固定的话,直接定义静态的。
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
原帖由 newkid 于 2010-6-23 23:11 发表
啥办法?
结构固定的话,直接定义静态的。

结构不固定的呢。。
所以我就想办法让他结构能固定下来,先建一张表DBCA
声明块就可以用这张表的ROWTYPE属性定义嵌套表,保证预编译这关能过了
在另一个过程的执行块中,重新建表,调用有上述声明块的过程
这样就可以实现建立动态的嵌套表了
不过目前还没实验呢,昨天刚想出的,还在考虑其他细节。
实验过后再回复。
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
不要在程序中建表。
如果你用动态SQL, 动态生成MERGE或INSERT SELECT预计,不用任何数组,也许可以解决问题。
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
原帖由 newkid 于 2010-6-25 00:09 发表
不要在程序中建表。
如果你用动态SQL, 动态生成MERGE或INSERT SELECT预计,不用任何数组,也许可以解决问题。


就是担心merge造成大事务,当失败了以后,回滚很麻烦。
所以才想到用批量操作的办法,能够做到分次提交,失败以后回滚也不会很麻烦。原先还考虑到比较好统计更新删除
信息。
不过现在发现利用merge也是可以做到统计这些信息的。
版主能否指正下我对merge的担心是否必要?
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
你尽量在子查询中消除这些异常,比如先排除重复记录,不产生超精度的数据等等,把能预见到的异常都去掉。
回复

使用道具 举报

千问 | 2008-9-15 01:28:12 | 显示全部楼层
谢谢,我明白了,可以结贴了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行