首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将大型机字节邮政编码转换为varchar或string

将大型机字节邮政编码转换为varchar或string
EN

Stack Overflow用户
提问于 2022-05-18 20:25:19
回答 1查看 119关注 0票数 1

我有一个DB2数据库使用一个字节编码的邮政编码。我被告知,由于空间限制,大型机读取标准化的美国邮政编码,并将其编码为字节格式(使用COBOL)。DB2数据库将编码的邮政编码读入VARCHAR(9)字段。是否有任何方法将DB2输出并将其转换回原始邮政编码来表示数据,就好像它是作为普通的5-4格式的zip /邮政编码出现的一样?

理想情况下,我的解决方案是使用SQL的,但是python或C#也会有帮助。谢谢。

下面是一些从大型机上提取的编码邮政编码的示例。

134771824地址是哈特福德,Ct和我希望它是06103。

122900373给贝尔法斯特我04915

在这个用例中,我正在处理后端Teradata仓库。我从IBM数据库中摄取这些信息,原始数据存储在IBM大型机上。大型机不维护原始的邮政编码。

似乎我应该能够将9位数操作回5个字符是目标

EN

回答 1

Stack Overflow用户

发布于 2022-05-19 17:22:19

字符邮政编码将占用9个字节的字符数据(因此VARCHAR(9)),所以问题是承载编码邮政编码的列数据类型是什么?

考虑到缺少的细节,这是推测,但我认为这是一个合理的,有教养的猜测,他们存储的值是一个COBOLcomp-3类型,它被包装在IBM上。下面是字符,然后是在它们下面的十六进制表示。

代码语言:javascript
复制
Characters    123456789    
Hex Values    FFFFFFFFF
              123456789

Characters       ∨←        
Hex Values    13579
              2468F

您可以看到,第一个示例中的字符值占用9个字节,第二个示例中的字节数为5个。

根据你的问题,你可以:

科波

77编码-ZIP PIC 9(9)使用COMP-3。77 CHAR-ZIP PIC 9(9)。

将CHAR-ZIP移动到编码-ZIP。

阅读Db2行并将压缩放到CHAR-ZIP中。将其移动到Db2 VARCHAR(9),并将其放置在PIC 9(9)字段中,然后将其移动到PIC 9(9) COMP-3。

请看这个StackOverflow answer,因为它能更广泛地解决你的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72295539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档