---
title: "LOAD DATA | OceanBase 文档中心"
description: LOAD DATA 描述 该语句用于从外部导入数据。 目前，OceanBase 数据库当前版本不支持 LOCAL INFILE 的语法加载数据文件, 计划后续版本将支持该功能。OceanBase 数据库中的 LOAD DATA 语句仅支持加载本地直连的 OceanBase 数据库的输入文件，用户需要在导入之前将文件拷…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.4 企业版 LTS

# LOAD DATA

更新时间：2026-07-01 18:38:38

## 描述

该语句用于从外部导入数据。

目前，OceanBase 数据库当前版本不支持 `LOCAL INFILE` 的语法加载数据文件, 计划后续版本将支持该功能。OceanBase 数据库中的 `LOAD DATA` 语句仅支持加载本地直连的 OceanBase 数据库的输入文件，用户需要在导入之前将文件拷贝当前 OBServer 节点上。

#### 说明

带有触发器（Trigger）的表禁止使用 `LOAD DATA` 语句。

`LOAD DATA` 目前可以对 CSV 格式的文本文件进行导入，整个导入的过程可以分为以下的流程：

1. 解析文件：OceanBase 数据库会根据用户输入的文件名，读取文件中的数据，并且根据指定的并行度来决定并行或者串行解析输入文件中的数据。
 2. 分发数据：由于 OceanBase 是分布式数据库，各个分区的数据可能分布在各个不同的 OBServer，`LOAD DATA` 会对解析出来的数据进行计算，决定数据需要被发送到哪个 OBServer。
 3. 插入数据：当目标 OBServer 收到数据后，在本地执行 `INSERT` 操作将数据插入到对应的分区当中。

要从外部文件导入数据，您需要具有 `FILE` 权限。

> **注意**
>
>  
>
> 使用 `REPLACE` 或者 `IGNORE` 子句的情况下，如果并行度大于 `1`，发生冲突的行最后插入的记录可能与串行执行的结果不同。如果需要严格保证冲突记录的插入结果，请不要指定该语句的并行度（或将并行度设置为 `1`）。

## 语法

```unknow
LOAD DATA
     [/*+ parallel(N) load_batch_size(M)*/]
    INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE table_name
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number {LINES | ROWS}]
    [(column_name_var
        [, column_name_var] ...)]

```

## 参数解释

| 参数 | 描述 |
| --- | --- |
| parallel(N) | 加载数据的并行度，`N` 默认为 `4`。 |
| load_batch_size(M) | 指定每次插入的批量大小，`M` 默认为 `1000`。推荐取值范围为 [100,1000]。 |
| file_name | 定输入文件的路径和文件名，目前仅支持从 OBServer 本地加载文件。 |
| REPLACE \| IGNORE | 如果遇到唯一键冲突，`REPLACE` 表示覆盖冲突行，`IGNORE` 表示忽略冲突行。 `LOAD DATA` 通过表的主键来判断数据是否重复，如果表不存在主键，则 `REPLACE` 与 `IGNORE` 选项没有区别。缺省时，遇到重复数据的时候，`LOAD DATA` 会将出现错误的数据记录到日志文件中。 |
| table_name | 导入数据的表的名称，支持分区表与非分区表。 |
| FIELDS \| COLUMNS | 指定字段的格式。   - `ENCLOSED BY`：设置导出值的修饰符。 - `TERMINATED BY`：设置导出列的结束符。 - `ESCAPED BY`：设置导出值忽略的字符。 |
| LINES STARTING BY | 指定行起始符。 |
| LINES TERMINATED BY | 指定行结束符。 |
| IGNORE number { LINES \| ROWS } | 忽略前几行，`LINES` 表示文件的前几行，`ROWS` 表示由字段分隔符指定的前几行数据。 缺省时，会将输入文件中的字段逐个与表中的列进行对应。 如果输入文件中并没有包含所有的列，那么缺少的列按照以下的规则会被默认填充：   - 字符类型：空字符串。 - 数值类型：0。 - 日期类型：`0000-00-00`。 |
| column_name_var | 指定导入的列名。 |

## 示例

从外部文件导入数据。

1. 设置全局安全路径。

   ```sql
   obclient> SET GLOBAL secure_file_priv = ""
   Query OK, 0 rows affected (0.03 sec)
   obclinet> \q
   Bye

   ```

   #### 说明

   由于 `secure_file_priv` 是 `GLOBAL` 变量，所以需要执行 `\q` 退出使之生效。
 2. 重连数据库后，从外部文件导入数据。

   ```sql
   obclient> LOAD DATA INFILE 'test.sql' INTO TABLE t1;
   Query OK, 0 rows affected

   ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
