---
title: "使用 Load Data Infile 导入外部数据文件时遇到报错 ERROR 1292 (22007): Incorrect value 的原因和解决方法-OceanBase数据库使用指南"
description: "了解OceanBase数据库在实际应用中关于使用 Load Data Infile 导入外部数据文件时遇到报错 ERROR 1292 (22007): Incorrect value 的原因和解决方法相关的常见问题和使用技巧，帮助您快速解决使用 Load Data Infile 导入外部数据文件时遇到报错 ERROR 1292 (22007): Incorrect value 的原因和解决方法的难题。"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 使用 Load Data Infile 导入外部数据文件时遇到报错 ERROR 1292 (22007): Incorrect value 的原因和解决方法

更新时间：2026-05-28 02:06

适用版本： V4.0.x、V4.1.x、V4.2.x、V4.3.x、V4.4.x 内容类型：Troubleshoot  

## 问题现象

使用Load Data命令导入外部数据文件时，遇到如下的报错：

![image](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/sql/20251113an-error-occurred-when-importing-external-data-file-using-load-data-infile.png)

```shell
### 使用命令如下：
obclient [test]> load data infile '/data/date.csv' into table sales_data fields terminated by ',';
ERROR 1292 (22007): Incorrect value

```

## 问题原因

```shell
### sales_data 表结构如下，包含时间类型
CREATE TABLE sales_data (
  transaction_id INT PRIMARY KEY,
  product VARCHAR(100),
  amount DECIMAL(10,2),
  sale_date DATE
) WITH COLUMN GROUP(each column);

### 数据文件如下
[root@ob54 data]# cat date1.csv
1004, 'Product A', 299.99, '2023-01-15'
1005, 'Product B', 199.50, '2023-02-20'
1006, 'Product C', 499.00, '2023-03-10'

### 截取部分导入报错日志如下
INFO  open (ob_file.cpp:55) [3202431][T1014_L0_G0][T1014][xxxxx-xxxxx-xxxxx-xxxxx] [lt=26] open fname=[/data/date.csv] fd=890 flags=0 succ
INFO  [SERVER.OMT] add_thread_to_cgroup_ (ob_cgroup_ctrl.cpp:523) [3202460][T1014_L0_G0][T1014][xxxxx-xxxxx-xxxxx-xxxxx] [lt=18] add tid to cgroup success(group_path="cgroup//tenant_1014//OBCG_DEFAULT", tid_value="3202460", tenant_id=1014, group_id=0)
WDIAG [LIB.TIME] str_to_ob_time_with_date (ob_time_convert.cpp:2518) [3202460][T1014_L0_G0][T1014][xxxxx-xxxxx-xxxxx-xxxxx] [lt=34][errcode=-4158] failed to get digits(ret=-4158, str='2023-01-15')
WDIAG [LIB.TIME] str_to_mdate (ob_time_convert.cpp:929) [3202460][T1014_L0_G0][T1014][xxxxx-xxxxx-xxxxx-xxxxx] [lt=23][errcode=-4158] failed to convert string to date(ret=-4158)
WDIAG [SQL] common_string_mdate (ob_datum_cast.cpp:1224) [3202460][T1014_L0_G0][T1014][xxxxx-xxxxx-xxxxx-xxxxx] [lt=7][errcode=-4158] str_to_date failed(ret=-4158, in_str='2023-01-15')
WDIAG [SQL] string_mdate (ob_datum_cast.cpp:4399) [3202460][T1014_L0_G0][T1014][xxxxx-xxxxx-xxxxx-xxxxx] [lt=8][errcode=-4158] fail to exec common_string_mdate(expr, ObString(child_res->len_, child_res->ptr_), res_datum)(ret=-4158)
WDIAG [SQL] to_type (ob_datum_cast.cpp:18862) [3202460][T1014_L0_G0][T1014][xxxxx-xxxxx-xxxxx-xxxxx] [lt=141][errcode=-4158] eval cast expr failed(ret=-4158)

### 根据上述日志报错得知字符串转换为日期失败
因为时间类型数据在 CSV 文件中被单引号包围，导致转换错误

```

## 适用版本

OceanBase 数据库 V4.x 版本。

## 解决方法

1. 检查 CSV 数据文件的内容和表结构，确保字段类型一致。
 2. 使用 Load Data Infile 命令导入数据文件时，缺省的列分隔符为`\t（TAB键）`，列界定符为空，行分隔符为 `\n`。因此对于使用单引号包裹的日期时间类型的数据，需要在导入命令中添加上列界定符 `enclosed by "\'"` 选项。

## 修改后的导入命令示例

```shell
### 导入成功
obclient [test]> load data infile '/data/date.csv' into table sales_data fields terminated by ',' enclosed by "\'";
Query OK, 3 rows affected (0.009 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

```

上一篇

[应用执行 insert 出现报错 00918](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002393334)

下一篇

[Oceanbase 数据库 Oracle 模式下批量执行 INSERT 语句时，参数中包含 NULL，无法触发批量优化](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006346774) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
