oracle number(19),为什么oracle的number(19)类型数据用科学计数法表示,并且自动从16位截掉? | 学步园...

reference:http://www.itpub.net/290118.html

question:

为什么oracle的number(19)类型数据用科学计数法表示,并且自动从16位截掉?

我通过oracle migration workbeach 从sqlserver中导入库到oracle,bigint类型自动映射成了number(19),我发现1234567890123456789自动会 存储为1.23456789012346E19,在toad中加大number(19)到number(38),亦是从16位截断?

后来用update sql语句时发现系统还是可以存储为1234567890123456789,只是在toad工具里,pl/sql工具里,以及oracle migration workbeach转换时,这些工具自动解析存为16位截断的科学计数法方式的数据了,

问题一:bigint应该转换为number(19)吗

问题二:toad或pl/sql中有地方设置不从16位截断吗

问题三:原来的数据该怎么找回来?

answer:

原来是oracle migration workbeach在转换过程中自动将大数用科学记数法的方式表示,因此改变了许多大数的真正值。

而toad和pl/sql developer中也默认将大数显示为科学计数法方式,极为不便。

在toad中->view->option->data->display large number in scientific notation,不选择该选项即可

在pl/sql developer中->tools->preferences->sql windows->number fields tochar,选中该选项即可。

但我又遇到了一个问题,在pl/sql developer的test windows中,测试存储过程时,test window下方的方格(即存储过程的各个参数),这里若录入一个大number数,则自动变成科学计数法(不光改变显示,改变了值),而使存储过程无法 计算下去,我怎么也找不到消去这种显示方式的地方,哪位兄弟知道啊?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值