免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5233 | 回复: 14
打印 上一主题 下一主题

一个数据库查询的问题。‘++++’ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-28 13:12 |只看该作者 |倒序浏览
我们的数据库有些古怪RECORD,有的FIELD值为“++++++”

于是呼,我STRSQL

SELECT * FROM PRODUCTIONLIB/DATAFILE
WHERE FIELD1 = '+++++++'
OR FIELD1 LIKE '+++++%'

都不行,找不到这个有++++++的所有记录,我的想法是全部找出来,然后报告老板,把他们改到正常值。

请指教。

论坛徽章:
0
2 [报告]
发表于 2007-07-28 13:33 |只看该作者
好像是数值溢出了,并非是有++++的值.

论坛徽章:
0
3 [报告]
发表于 2007-07-28 14:20 |只看该作者
楼主能用SQL打开数据库已经不错了。如果是我写的东东,只要你一用STRSQL就报系统错。

最好的办法,用RPG写个全过程文件,用I表操作,不要按原数据库字段操作,把原数据库一条记录当作一个字符串进行操作,读出后,写入一个大于该记录长度的另一个PF文件中,最后再用STRSQL查看。

具体实现查看你能拿到的最早的RPG User Guide,上面有例子,怎样使用I表。

论坛徽章:
0
4 [报告]
发表于 2007-07-28 20:41 |只看该作者
原帖由 passthru 于 2007-7-28 14:20 发表
楼主能用SQL打开数据库已经不错了。如果是我写的东东,只要你一用STRSQL就报系统错。

最好的办法,用RPG写个全过程文件,用I表操作,不要按原数据库字段操作,把原数据库一条记录当作一个字符串进行操作,读 ...


我们公司没有RPG啊,只有COBOL,能用什么办法呢?

这些++++++++++全是非法字符,问题是有多少都还不知道啊,还好是MEMO文件,不是主要金融数据

论坛徽章:
0
5 [报告]
发表于 2007-07-30 09:03 |只看该作者
原帖由 george16 于 2007-7-28 20:41 发表


我们公司没有RPG啊,只有COBOL,能用什么办法呢?

这些++++++++++全是非法字符,问题是有多少都还不知道啊,还好是MEMO文件,不是主要金融数据


程序是否用COBOL写的?如果是,可能是COBOL对数据的压缩存储。如果是这样,只有用原程序参照,或写个COBOL程序,用COBOL的三种类型压缩方法,分别试试。

另外,RPG是AS400的default语言,应该随OS打包安装。

论坛徽章:
0
6 [报告]
发表于 2007-07-30 10:03 |只看该作者
原帖由 passthru 于 2007-7-30 09:03 发表


程序是否用COBOL写的?如果是,可能是COBOL对数据的压缩存储。如果是这样,只有用原程序参照,或写个COBOL程序,用COBOL的三种类型压缩方法,分别试试。

另外,RPG是AS400的default语言,应该随OS打包安装。


谢谢你的热心回答。

我一点都不会RPG,可能公司有吧。

不是COBOL对数据的压缩存储,因为只有部分数据是这样的。而且是一些2002年的数据才这样。乱码的可能性最大,我们几个同事就是想先看有多少是这样的,然后找办法解决。谢谢

论坛徽章:
0
7 [报告]
发表于 2007-07-30 11:18 |只看该作者
我在Canada用过一个AS400上数据库操作软件:QA,可以查出很多数据问题,也可以通过读PF或LF导出数据库DDS文件等。

我这里构思一个RPG程序,进行转换。如果有条件的话,你可以试试。

FFile1 IP F        EDISK
FFile2 O            EDISK
*
IFile1Rc
I                                1  100 R1
*
OFile2   D       10
O              R1             1  100


注:

File1是有问题PF或LF,记录名File1Rc;File2是一个一个字符字段的,且记录长度,例子中为100,大于等于File1记录字段的PF。编译后,直接CALL。当运行结束,File1的记录全部导入File2,再用SQL查看File2。
我这里还没有环境调试程序。应该不会错,我曾经用这种办法调试很多有问题的数据库。

如果你对RPG不懂,可以把这个思想用COBOL实现:就是读取一条File1的记录,把它全部导入File2,一个字符型字段的文件。

看看你写的COBOL程序是不是比我写的RPG程序还要。呵呵。。。。我的RPG程序只有6句。

[ 本帖最后由 passthru 于 2007-7-30 11:25 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2007-07-30 11:46 |只看该作者
原帖由 passthru 于 2007-7-30 11:18 发表
我在Canada用过一个AS400上数据库操作软件:QA,可以查出很多数据问题,也可以通过读PF或LF导出数据库DDS文件等。

我这里构思一个RPG程序,进行转换。如果有条件的话,你可以试试。

FFile1 IP F        E ...


呵呵,谢谢答复。

转换(导出)成一个FIELD的FILE2以后,SQL怎么操作?全字符,选有++++号字符的RECORD吗?我明天早上试验一下

[ 本帖最后由 george16 于 2007-7-30 11:51 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-07-30 12:24 |只看该作者
STRSQL
数据都导入到File2,File2只有一个字符型字段。用Sql打开后,对应File1的记录,就可以查看File2记录上相应位置的字段内容。

上面程序有个错误:

  O              R1             1  100
改为
  O                               1  100  R1
如果R1放在前,就要多加一个描述File2的I表。

论坛徽章:
0
10 [报告]
发表于 2007-07-30 13:12 |只看该作者
是什么类型的字段,如果是日期型,0001-01-01和9999-12-31显示出来的是++++++++
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP