You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用UCanAccess从大文本文件导入数据时无法正确处理Null值的求助

UCanAccess从大文本文件导入数据时无法正确处理Null值的求助

因为积分不够没法在原讨论下评论,我只能新开一个帖子求助。

我已经按照原讨论里的代码实现了(感谢Gord Thompson),但现在遇到了Null值处理的问题:不管我在CSV字段里写不带引号的null,还是直接留空,都没法导入到预定义表的可空double类型字段里。哪怕我自己实现了com.healthmarketscience.jackcess.util.ImportFilter也没用。

我查看Jackcess 4.0.0 JAR里的com.healthmarketscience.jackcess.impl.ColumnImpl代码,发现问题出在ColumnImpl::toNumber方法里——当遇到Null值时,它返回的是BigDecimal.ZERO,这显然不是Null。

不过现在我的代码其实是在ColumnImpl::toNumber方法末尾的这条语句报错:

return Double.valueOf(value.toString());

这说明到这一步我传入的不是Null,只是空字符串。我可以在ImportFilter的实现里覆盖这个逻辑,但如刚才所说,最终还是会返回非Null的BigDecimal.ZERO

我目前能想到的办法只有先导入特殊值,之后再用更新查询把它们转成Null,或者用Access表/字段级的宏,但测试下来导入数据时这些宏好像不会触发。这两个方案都不太理想,要是能正确处理Null值就好了。

有没有什么解决思路?

谢谢,
Matthew

P.S. 想@Gord Thompson但好像因为积分不够没法用@功能。


备注:内容来源于stack exchange,提问作者lastfreedom

火山引擎 最新活动