请教,如何实现动态定义QUERY

发布于 2022-09-07 14:47:04 字数 140 浏览 13 评论 9

需求:我们系统在做新旧系统并行测试,需要比较新旧两个LIB中所有同名数据库的比较,找到新旧数据库不相同的记录。
类似WRKQRY中定义qry比较两个数据库的unmatch记录,但由于数据库较多,不可能一个个静态定义,需要动态产生。

请教一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

浮光之海 2022-09-15 03:24:10

N个FileA和N个FileB,如果index不一样,或keys在记录中的位置不一样,动态的query是不存在的,用*nocheck也不能用。

如果有相同key,可以用rpg的cycle+程序描述file来做,速度是你意想不到的快。

否则,用非存在的query,即使用时再创建query,对一个几十个G的file来说,也是较慢的。

零度℉ 2022-09-14 22:34:23

这个似乎没有更好的办法
用WRKQRY比较吧,是个体力活
其实也很快的,1000个PF的话,3,4个人一起做,也就一天左右
做好了把QRY保存好,防止下次再用哈哈

晨敛清荷 2022-09-14 19:55:30

FileA和FileB有相同的KEY,但问题是我要比较的是N个FileA和N个FileB,我需要一个通用的工具来比较,其实用WRKQRY来比较两个库,找出非交集部分的效率还是蛮高的,千万记录的数据库10多分钟可以完成。问题在于我不知道怎样动态定义QUERY,因此无法通用。

梦里寻她 2022-09-14 08:16:06

对sql不太熟悉 这种东西还是写个程序比较好

冧九 2022-09-14 06:56:06

本帖最后由 passthru 于 2011-01-18 10:29 编辑

如果比较FileA和FileB,且FileA和FileB都是大数据PF。问:这两个File是否有Key?或有相同键字的LF?

如果用sql,对大数据pf进行比较,又select * not in,花费时间不是一般的长,要按天来计算吧?这样的算法,相当于FileA是IP,FileB是IS;FileA要遍历一次;FileB要遍历FileA记录数xFileB记录数,too large,waste time.

岁月无声 2022-09-13 19:20:09

楼上larkin9527大侠的办法,我想不到如何通过SQL命令实现不在对方存在的记录?还请请详细说明一下实现过程。谢谢

似最初 2022-09-13 10:09:45

本帖最后由 MUSIC168 于 2011-01-18 08:54 编辑

感谢楼上passthru大侠,补充一下问题:
1)不是源码库,是数据库
2)PF的记录数不定,大的有几千万条记录,几十个G

我自己想了了一个办法,比较笨,但对付大的数据库不好。我觉得不好,还请高手帮想个办法,不要数据复制的。
我的办法:弄两个临时库,只有一个字段,记录长度1024BYTES,分别将两个需要的比较的数据库CPYF到这两个临时库当中,CPYF命令参数*NOCHK,再用两次SQL命令select * not in,找出不在对方的记录。

泛滥成性 2022-09-13 00:46:31

进一步想了解的问题:
1)是否源码库,即pf-src?
2)如果是数据库,即dta-pf,最大pf的记录有多少条?size有多大?

子栖 2022-09-08 19:35:59

可以先根据数据文件的format搭建比较的sql语句,再用STRQMQRY去执行这些比较语句。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文