You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在H2数据库CSVREAD操作中正确识别并处理NULL值

问题原因

H2内置的CSVREAD函数默认仅识别CSV中的空单元格为SQL NULL值,你现有CSV文件中第三列写的NULL会被直接解析为字符串字面量,尝试转换为BIGINT类型时就会触发类型转换报错。

解决方案

方案1:修改CSV文件(无需调整导入语句)

将CSV中需要表示空值的位置留空,删除对应位置的NULL字符即可,修改后的CSV内容如下:

Company,No,DW_Batch
"TURA, US - LIVE",111309,
"TURA, US - LIVE",211226,

方案2:保留CSV现有内容,调整导入语句指定空值标识

使用CSVREAD函数的第三个参数配置nullString属性,指定将字符串NULL识别为空值,修改后的导入语句如下:

String populateCustomer = """insert into Customer_V select * from CSVREAD('src/test/resources/nav_customers.csv', null, 'nullString=NULL')"""
sql.executeInsert(populateCustomer);
  • 补充说明:如果你的CSV中使用小写null表示空值,对应修改参数为nullString=null即可,参数值需要和CSV中空值的写法完全匹配。

内容的提问来源于stack exchange,提问作者pbuchheit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 18:36:03