【转】Oracle-存取器不是参数存取器

新近写一个vba程序的时分不间歇的出现 “存取器不是参数存取器 ”的错处。嗣后发现至于我等不专业人士,碰到这么的错处还挺e的。下头是综合各种文件理解到的一些货色。
  问题多出现在有乘法也许除法或许其它发作高精度小数的时分,这类错处应该是Oracle和vba里的数据精密度不一致罗致的,Oracle里的数据精密度为38位,而微软VB ADO系统的精密度最高唯其如此支持28位的精密度,招致衔接出了问题。
  当前两个解决方案:
  1. 不用用Oracle客户端自带的 Ole驱动,用微软的 Old驱动。
  Provider=MSDAORA 这个应该是微软提供的驱动解决了数据联接的问题。这个步骤大抵解决了大多数问题,但烦劳取决微软自带的驱动不支持Oracle一些效能,例如调用某些储存进程。
  2. 直接改查询话语,利用trunc和round函数,将全部也许发作高精度数值的结果积极截断。
  select trunc(1.11231234122312, 三) from dual 这个步骤是有效的,但是我觉得很奇怪,上头的截断是用十进制位数,但保留的时分应该是二进制的,十进制的截断代表什么意思呢?

我采用第一种方法解决

原文地址:http://www.wangchao.net.cn/it/detail_59213.html

posted on 2011-10-08 16:26  kafony  阅读(575)  评论(0编辑  收藏  举报

导航