求助!!银行数据类型

[复制链接]
查看11 | 回复9 | 2005-5-24 01:02:20 | 显示全部楼层 |阅读模式
1.char(12)可容字符到底是12还是12+4=16?
2.可不可以用全部用Varchar代替char,并且把()中的数改大些保证安全?比如不确定“银行存款”参数长度,可不可以写成Char(8000)?
3.存款利率参数怎么写?如"1.245%"。
%,¥,$占几个字节?

我不是计算机专业的,帮帮忙,谢谢!
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
给一个典型的卡交易的数据结构,你可从中得到启发:
CURCDE
货币
CHAR
3
Y

TXNAMT
交易金额
NUMBER
15.2
N

TXNAMT交易金额 S9(15)V9(2)C3
DRATSF
借方利率值 9(3)V9(6)C3

一般来说:
1.很少做这类扩容的技术,不知道是什么概念。我只试过对局部字段做过这类事情(将原储存的CHAR型用BYTE来读。)但是这样做需要每个子段都通过一个转换代码来解开。系统开支很大,故基本上不常用。
而兄弟所指的CHAR12=>16为何原理,有待其他高人回答。
2.字段长度的设计是非常严谨的,要谨慎考虑。一般来说都是以够用为准,不预留长度。原因有二:第一,预留会导致每次都必须在程序中过滤空字符;第二,不合理的预留会导致系统空间资源不合理地浪费。如存款金额长度为8000?那是啥概念?有谁的存款有9.999亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿亿。。。。。。那么多??
一般来说,对单个账户的余额为15.2则足够了,15位已经是9.999999999999999千万亿的数量级了。相信连比尔盖刺也够用了。

3利率的格式人行都有标准的。如上为:小数点前三位。小数点后六位。这些是不能擅自喜欢来定义的。
而,这些货币符号,是单独储存的。而且也不是用这些图形符号来表示的,用代码:如人民币代码为001,或者CNY.如果因为打印需要这些图形符号,则是用程序来转换的。
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
太感谢了!!本来应该好好学习一下计算机,但这次时间紧促,只得求助。小弟愚钝,还有两处不解,望指教。
1."小数点前三位。小数点后六位。"那就是decimal(9,6)吗?
2."TXNAMT 交易金额 S9(15)V9(2) C3" 中TXNAMT是什么?S9(15)V9(2) C3怎么这么复杂?“
CURCDE 货币 CHAR 3 Y”3Y是怎么回事?
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
交易金额 S9(15)V9(2)
为主机数据格式。表示:无正负号的数字型,小数点前15位。小数点后2位
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
再次感谢!
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
最初由 啊哩爸爸 发布
[B]交易金额 S9(15)V9(2)
为主机数据格式。表示:无正负号的数字型,小数点前15位。小数点后2位 [/B]

应该是有符号数吧
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
最初由 qdyzq 发布
[B]
应该是有符号数吧 [/B]

银行业系统,因财会制度,对于金额类型,是没有正负号的说法的。
而是严谨地通过借贷方来表示的。
所以,是绝对为:无符号数的。---这不是一家银行的做法,是全球银行业内的做法。
对于银行系统,采用浮点型或有符号数,有时是很恐怖的事情。---一个溢出,将出现类似:-1变成655535的事情。
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
连这个都不明白,唉。。。。。。
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
最初由 settlement 发布
[B]太感谢了!!本来应该好好学习一下计算机,但这次时间紧促,只得求助。小弟愚钝,还有两处不解,望指教。
1."小数点前三位。小数点后六位。"那就是decimal(9,6)吗?
2."TXNAMT 交易金额 S9(15)V9(2) C3" 中TXNAMT是什么?S9(15)V9(2) C3怎么这么复杂?“
CURCDE 货币 CHAR 3 Y”3Y是怎么回事? [/B]

但S9(15)9(2)本身还是带了符号,HEX下最后有表示正负号的呀
回复

使用道具 举报

千问 | 2005-5-24 01:02:20 | 显示全部楼层
最初由 啊哩爸爸 发布
[B]
银行业系统,因财会制度,对于金额类型,是没有正负号的说法的。
而是严谨地通过借贷方来表示的。
所以,是绝对为:无符号数的。---这不是一家银行的做法,是全球银行业内的做法。
对于银行系统,采用浮点型或有符号数,有时是很恐怖的事情。---一个溢出,将出现类似:-1变成655535的事情。 [/B]

对于银行业务的金额而言,当然是无所谓正负的,但在计算机内部的表示,却采用的是有符号数,不然出现红字是如何处理的呢?
S9(15)V92)C3应该是主机上cobol语言的数据定义方式,表示一种压缩存储的有符号数字型。
我是这样认为的,如有不妥,烦再赐教。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行