Oracle Decimal

时间:2018-03-08 00:29:15

标签: oracle excel-vba vba excel

我们使用VBA使用Microsoft.ACE.OLEDB.12.0提供程序从Oracle数据库中检索数据。

我们长时间使用这种方法没有问题,但我们遇到了来自特定表的特定数据查询的问题。

在VBA下运行时,我们得到“运行时错误'1004':应用程序定义或对象定义的错误。但是进一步调查,我们发现以下内容:

我们运行的查询是动态生成的,我们处理它们的方法是将结果读入变量数组,然后将该数组输出到Excel中。当我们逐步执行特定查询时,我们发现一个特定的数据库字段是“空白”:本地窗口显示的值是完全空白的:它不是空字符串,它不是null,它不是零。 VarType()将它显示为十进制数据类型,但它是空的。

我似乎无法阻止锁定此错误:

On Error Resume Next

......仍然休息。

if (isEmpty(theValue)) then

...没有抓住它,因为它不是空的

if (theValue is nothing) then

...没有抓住它,因为它不是一个对象

我们在.NET应用程序中使用了SQL,并得到了更多信息:

  

十进制的比例值必须介于0和28之间(包括0和28)。参数名称:Scale

所以:我认为这是两个问题: 1.)在VBA中,如何捕获变量数据类型值-the-is-not-empty-or-null,以及; 2.)如何解决Oracle Decimal问题?

对于#2,我从Oracle decimal data type看到,它可以支持多达31个位置的精度,我认为我使用的提供程序只能支持28.我想我需要将它转换为查询中的较小类型。

还有其他想法吗?

0 个答案:

没有答案