---
title: "使用 LOAD DATA 语句导入数据 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 使用 LOAD DATA 语句导入数据 概述 本文说明如何在 OceanBase 中通过 LOAD DATA 将外部数据写入内表，并在满足条件时启用 旁路导入 （ APPEND / direct(...) 等 Hint，或依赖租户级配置项 default_load_mode ），以提升大批量装载吞吐。 语法 -- F…
---
切换语言

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

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

# 使用 LOAD DATA 语句导入数据

更新时间：2026-06-18 10:13:19

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/620.obap/300.obap-data-transfer/300.data-import/200.load-data-import.md)  

## 概述

本文说明如何在 OceanBase 中通过 **`LOAD DATA`** 将外部数据写入内表，并在满足条件时启用 **旁路导入**（`APPEND` / `direct(...)` 等 Hint，或依赖租户级配置项 [default_load_mode](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685448)），以提升大批量装载吞吐。

### 语法

```sql
-- FROM FILES()
LOAD DATA /*+ [APPEND | DIRECT(need_sort,max_error,{'full'|'inc'|'inc_replace'})] parallel(N) */ FROM FILES(...) INTO TABLE table_name ...;

-- 服务器文件或对象存储单文件
LOAD DATA /*+ [APPEND | DIRECT(need_sort,max_error,{'full'|'inc'|'inc_replace'})] parallel(N) */ [REMOTE_OSS] INFILE 'file_name' INTO TABLE table_name ...;

-- 客户端本地文件（不支持旁路导入）
LOAD DATA LOCAL INFILE 'file_name' INTO TABLE table_name ...;

```

## `LOAD DATA` 按数据读取位置的分类与语法关系

| 路径 / 语法 | 数据所在位置 | 典型适用场景 | 语法关系与说明 | 限制 / 配置 / 补充 |
| --- | --- | --- | --- | --- |
| `LOAD DATA FROM FILES(...)` | 由 `FILES` 子句描述的 服务端可访问路径（本地目录、对象存储 URL、HDFS 等，以手册为准） | 单条语句描述 `LOCATION / FORMAT / PATTERN`，适合 CSV / ORC / Parquet 等批量扫描与错误诊断 | 通过 `FROM FILES(LOCATION = ..., FORMAT = (...), [PATTERN = ...])` 声明待扫描文件集合，由服务端按格式解析后写入目标表；可与 `LOG ERRORS` 等子句配合做导入期错误诊断 | 旁路场景下，可在 `LOAD DATA` 关键字后添加 `/*+ direct(...) parallel(N) */` 等 Hint |
| `LOAD DATA ... INFILE 'path'`（无 `LOCAL`） | OBServer 进程可读 的服务器文件系统路径 | 文件已下发至数据库节点或共享存储；常配合 `secure_file_priv` | 不写 `LOCAL`、且 `INFILE` 为 OBServer 上路径 时，由服务端直接读取该文件（或通配符匹配的一组文件） | 需将路径配置在 [`secure_file_priv`](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685248) 允许的范围内；修改该变量通常需经本地 Unix Socket 连接执行 |
| `LOAD DATA REMOTE_OSS INFILE 'oss://...' / 's3://...'` | 对象存储桶内的单个文件 URL | 从对象存储桶内单个文件 URL 读取数据 | 语法写为 `LOAD DATA REMOTE_OSS INFILE 'oss://...'/'s3://...'`，与 `FROM FILES` 中 `LOCATION` 为对象存储 URL 同属「外部大规模数据源」范畴 | 本文示例以 `FROM FILES`、`INFILE`、`LOCAL INFILE` 三类组织；若使用 `REMOTE_OSS INFILE`，可将下文中 `direct(...)`、`parallel(N)` 及分区子句写法应用到该语法上 |
| `LOAD DATA ... LOCAL INFILE 'path'` | 发起连接的客户端本机 路径 | 文件仅存在于客户端；连接需启用 `--local-infile` | 关键字 `LOCAL` 表明文件位于 客户端本机；客户端读取后上传至服务端完成解析与写入 | 连接时请使用 `obclient --local-infile`（或等效选项）启用本地装载能力；**`LOCAL INFILE` 不支持旁路导入** |

#### 说明

全量旁路导入与增量旁路导入的适用范围、差异及更完整的旁路导入能力说明，请参见 [数据导入概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006277724)。

各参数的完整定义及语法细节，请参见 [LOAD DATA 语法（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686093)。

## 示例

**全量旁路导入**（`direct(..., 'full')`）通常用于空表首次装载或整体基线导入；

**增量旁路导入**（`direct(..., 'inc')` 或 `'inc_replace'`）通常用于目标表**已有数据**基础上的追加装载。

两者在 `DIRECT()` 第三参数、目标表状态及适用限制上不同。关于全量旁路导入与增量旁路导入的差异、适用场景及限制，参见 [数据导入概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006277724)。

下文示例以**全量旁路导入**为主；增量旁路导入的 Hint 写法相同，仅将第三参数改为 `'inc'` 或 `'inc_replace'`。

### LOAD DATA FROM FILES

    MySQL 模式   Oracle 模式

1. 登录到需要连接 OBServer 节点所在的机器上，在 `/home/admin` 目录下准备待扫描的数据文件（`LOCATION` 指向 **服务端可访问路径**，可为该目录下的 CSV / ORC / Parquet 等，本示例以 CSV 为例）。

   #### 说明

   `FROM FILES` 中的 `LOCATION` 须为 OBServer 能访问的路径；目录及文件建议置于 `secure_file_priv` 允许的范围内（与 `LOAD DATA INFILE` 相同）。

      1. 进入 OBServer 节点所在的机器。

        ```shell
        [xxx@xxx /home/admin]# ssh admin@10.10.10.1

        ```
      2. 创建测试数据 `tbl1.csv`（与上文 `LOAD DATA INFILE` 示例中文件内容一致，便于对照）。

        ```shell
        [admin@xxx /home/admin]# vi tbl1.csv
        1,11
        2,22
        3,33

        ```
 2. 设置导入的文件路径。

   设置系统变量 `secure_file_priv`，配置导入或导出文件时可以访问的路径。

   #### 注意

   由于安全原因，设置系统变量 `secure_file_priv` 时，只能通过本地 Unix Socket 连接数据库执行修改该全局变量的 SQL 语句。更多信息，请参见 [secure_file_priv](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685248)。

      1. 登录到需要连接 OBServer 节点所在的机器上。

        ```
      2. 执行以下命令，通过本地 Unix Socket 连接方式连接租户 `mysql001`。

        ```shell
        obclient -S /home/admin/oceanbase/run/sql.sock -uroot@mysql001 -p******

        ```
      3. 设置导入路径为 `/home/admin`。

        ```shell
        obclient [(none)]> SET GLOBAL secure_file_priv = "/home/admin";
        Query OK, 0 rows affected

        ```
 3. 重新连接数据库后，使用 `LOAD DATA FROM FILES` 与旁路 Hint 导入数据。

      1. 创建表 `tbl2`（表结构与上文 `LOAD DATA INFILE` 全量示例一致）。

        ```shell
        obclient [test]> CREATE TABLE tbl2 (
                            col1 INT PRIMARY KEY,
                            col2 INT
                         )
                         PARTITION BY RANGE (col1)
                            SUBPARTITION BY RANGE (col1) (
                               PARTITION p0 VALUES LESS THAN (100) (
                                     SUBPARTITION p0_1 VALUES LESS THAN (50),
                                     SUBPARTITION p0_2 VALUES LESS THAN (100)
                               ),
                               PARTITION p1 VALUES LESS THAN (200) (
                                     SUBPARTITION p1_1 VALUES LESS THAN (150),
                                     SUBPARTITION p1_2 VALUES LESS THAN (200)
                               )
                         );
        Query OK, 0 rows affected

        ```
      2. 查询表 `tbl2` 是否有数据，此时显示表为空。

        ```shell
        obclient [test]> SELECT * FROM tbl2;
        Empty set

        ```
      3. 使用旁路导入将 `tbl1.csv` 扫描并导入到表 `tbl2`。

        如果你需要使用增量旁路导入的方式导入数据，语法示例可以参考：

        ```shell
        obclient [test]> LOAD DATA /*+ direct(true,1024,'inc') parallel(16) */ FROM FILES(
            LOCATION = '/home/admin',
            FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
            PATTERN = 'tbl1.csv'
        ) INTO TABLE tbl2;

        ```

        或：

        ```shell
        obclient [test]> LOAD DATA /*+ direct(true,1024,'inc_replace') parallel(16) */ FROM FILES(
            LOCATION = '/home/admin',
            FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
            PATTERN = 'tbl1.csv'
        ) INTO TABLE tbl2;

        ```

        后续步骤中，将以全量旁路导入数据方式的示例接续讲解。

             - 指定表 `tbl2` 的全部列导入数据。

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2;
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```
             - 指定表 `tbl2` 的指定列导入数据。例如指定 `col1`，`col2` 列。

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2 (col1,col2);
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```
             - 指定表 `tbl2` 的一级分区导入数据。

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2 partition(p0, p1);

              ```
             - 指定表 `tbl2` 的二级分区导入数据。

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2 partition(p0sp0_1, p1sp1_1);

              ```
             - （可选）结合 `LOG ERRORS` 做导入期错误诊断（需当前版本支持该子句时方可使用）。

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2
              LOG ERRORS REJECT LIMIT UNLIMITED;

              ```
             - 使用配置项 `default_load_mode` 导入数据。

                     1. 设置 `default_load_mode` 的值为 `FULL_DIRECT_WRITE`。

                       ```shell
                       obclient [test]> ALTER SYSTEM SET default_load_mode ='FULL_DIRECT_WRITE';

                       ```
                     2. 不指定 `LOAD DATA` 语句的 Hint。

                       ```shell
                       obclient [test]> LOAD DATA FROM FILES(
                           LOCATION = '/home/admin',
                           FORMAT = (TYPE = 'CSV', FIELD_DELIMITER = ','),
                           PATTERN = 'tbl1.csv'
                       ) INTO TABLE tbl2;

                       ```
      4. 验证表 `tbl2` 中是否已导入数据。

        ```shell
        obclient [test]> SELECT * FROM tbl2;

        ```

        查询结果如下：

        ```shell
         +------+------+
         | col1 | col2 |
         +------+------+
         |    1 |   11 |
         |    2 |   22 |
         |    3 |   33 |
         +------+------+
         3 rows in set

        ```

        结果显示表 `tbl2` 中已导入数据。

1. 登录到需要连接 OBServer 节点所在的机器上，在 `/home/admin` 目录下准备 `tbl1.csv`（步骤与数据内容同 MySQL 模式）。

   #### 说明

   `FROM FILES` 的 `LOCATION` 为服务端路径；`FORMAT` 中 `TYPE` 取值与大小写以当前租户模式手册为准，本示例与手册示例一致使用小写 `csv`。

        ```
      2. 创建测试数据 `tbl1.csv`。

        ```
      2. 执行以下命令，通过本地 Unix Socket 连接方式连接租户 `oracle001`。

        ```shell
        obclient -S /home/admin/oceanbase/run/sql.sock -usys@oracle001 -p******

      1. 创建表 `tbl2`（与上文 `LOAD DATA INFILE` 全量示例中 Oracle 模式表结构一致）。

        ```shell
        obclient [SYS]> CREATE TABLE tbl2 (
                            col1 INT PRIMARY KEY,
                            col2 INT
                         )
                         PARTITION BY RANGE (col1)
                            SUBPARTITION BY RANGE (col1) (
                               PARTITION p0 VALUES LESS THAN (100) (
                                     SUBPARTITION p0_1 VALUES LESS THAN (50),
                                     SUBPARTITION p0_2 VALUES LESS THAN (100)
                               ),
                               PARTITION p1 VALUES LESS THAN (200) (
                                     SUBPARTITION p1_1 VALUES LESS THAN (150),
                                     SUBPARTITION p1_2 VALUES LESS THAN (200)
                               )
                         );
        Query OK, 0 rows affected

        ```shell
        obclient [SYS]> SELECT * FROM tbl2;
        Empty set

        ```shell
        obclient [SYS]> LOAD DATA /*+ direct(true,1024,'inc') parallel(16) */ FROM FILES(
            LOCATION = '/home/admin',
            FORMAT = (TYPE = 'csv', FIELD_DELIMITER = ','),
            PATTERN = 'tbl1.csv'
        ) INTO TABLE tbl2;

        ```

        或：

        ```shell
        obclient [SYS]> LOAD DATA /*+ direct(true,1024,'inc_replace') parallel(16) */ FROM FILES(
            LOCATION = '/home/admin',
            FORMAT = (TYPE = 'csv', FIELD_DELIMITER = ','),
            PATTERN = 'tbl1.csv'
        ) INTO TABLE tbl2;

        ```

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'csv', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2;
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'csv', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2 (col1,col2);
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```
             - （可选）指定表 `tbl2` 的一级分区导入数据。

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'csv', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2 partition(p0, p1);

              ```
             - （可选）指定表 `tbl2` 的二级分区导入数据。

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ FROM FILES(
                  LOCATION = '/home/admin',
                  FORMAT = (TYPE = 'csv', FIELD_DELIMITER = ','),
                  PATTERN = 'tbl1.csv'
              ) INTO TABLE tbl2 partition(p0sp0_1, p1sp1_1);

                       ```shell
                       obclient [SYS]> ALTER SYSTEM SET default_load_mode ='FULL_DIRECT_WRITE';

                       ```shell
                       obclient [SYS]> LOAD DATA FROM FILES(
                           LOCATION = '/home/admin',
                           FORMAT = (TYPE = 'csv', FIELD_DELIMITER = ','),
                           PATTERN = 'tbl1.csv'
                       ) INTO TABLE tbl2;

        ```shell
        obclient [SYS]> SELECT * FROM tbl2;

        ```

        查询结果如下：

        ```

#### LOAD DATA INFILE

    MySQL 模式   Oracle 模式

1. 登录到需要连接 OBServer 节点所在的机器上，在 `/home/admin` 目录下创建测试数据。

   #### 说明

   OceanBase 数据库中的 `LOAD DATA` 语句仅支持加载 OBServer 节点本地的输入文件。因此，需要在导入之前将文件拷贝到某台 OBServer 上。

        ```
 3. 重新连接数据库后，使用 `LOAD /*+ DIRECT */ DATA` 语句导入数据。

      1. 创建表 `tbl2`。

        ```
      3. 使用旁路导入将 `tbl1.csv` 文件中的数据导入到表 `tbl2`。

        ```shell
        obclient [test]> LOAD DATA /*+ direct(true,1024,'inc') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

        或：

        ```shell
        obclient [test]> LOAD DATA /*+ direct(true,1024,'inc_replace') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

             - 指定表 `tbl2` 的所有列导入数据。

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```
             - 指定表 `tbl2` 的指定任意列导入数据。例如指定 `col1`，`col2` 列。

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ','(col1,col2);
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 partition(p0, p1)  FIELDS TERMINATED BY ',';

              ```shell
              obclient [test]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 partition(p0sp0_1, p1sp1_1)  FIELDS TERMINATED BY ',';

                       ```shell
                       obclient [test]> LOAD DATA INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

        查询结果如下：

        ```

1. 登录到需要连接 OBServer 节点所在的机器上，在 `/home/admin` 目录下创建测试数据 `tbl1`。

        ```shell
        obclient [SYS]> LOAD DATA /*+ direct(true,1024,'inc') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

        或：

        ```shell
        obclient [SYS]> LOAD DATA /*+ direct(true,1024,'inc_replace') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ','(col1,col2);
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 partition(p0, p1)  FIELDS TERMINATED BY ',';

              ```shell
              obclient [SYS]> LOAD DATA /*+ direct(true,1024,'full') parallel(16) */ INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 partition(p0sp0_1, p1sp1_1)  FIELDS TERMINATED BY ',';

                       ```shell
                       obclient [SYS]> LOAD DATA INFILE '/home/admin/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

        查询结果如下：

        ```

#### LOAD DATA LOCAL INFILE

    MySQL 模式   Oracle 模式

1. 在 **运行 obclient 的客户端本机** 准备数据文件（路径为 **客户端本地路径**，勿与 OBServer 上路径混淆）。文件内容与上文示例一致，仍命名为 `tbl1.csv`。

   #### 说明

   `LOCAL INFILE` 表示由客户端读取本地文件并上传至服务端；连接命令需携带 `--local-infile`（或等效选项）。**`LOAD DATA LOCAL INFILE` 不支持旁路导入**，因此请勿添加 `APPEND` / `DIRECT(...)` Hint。

      1. 在客户端创建数据文件（示例路径 `/home/admin/client_csv/tbl1.csv`，请按实际客户端环境调整目录）。

        ```shell
        mkdir -p /home/admin/client_csv
        vi /home/admin/client_csv/tbl1.csv

        ```

        文件内容如下：

        ```shell
        1,11
        2,22
        3,33

        ```
 2. 使用本地 infile 能力连接数据库并进入目标库（示例为租户 `mysql001` 下 `test` 库）。

   ```shell
   obclient --local-infile -h10.10.10.1 -P2881 -uroot@mysql001 -p****** -Dtest

   ```
 3. 使用 `LOAD DATA LOCAL INFILE` 导入数据（非旁路）。

        ```
      3. 使用 `LOAD DATA LOCAL INFILE` 将客户端 `tbl1.csv` 导入到表 `tbl2`。

              ```shell
              obclient [test]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [test]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ','(col1,col2);
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [test]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 partition(p0, p1)  FIELDS TERMINATED BY ',';

              ```shell
              obclient [test]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 partition(p0sp0_1, p1sp1_1)  FIELDS TERMINATED BY ',';

              ```
      - `LOCAL INFILE` 形态不适用 `default_load_mode` 的旁路导入模式；可直接执行如下语句：

       ```shell
       obclient [test]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

        查询结果如下：

        ```

1. 在 **客户端本机** 准备 `tbl1.csv`（路径示例 `/home/admin/client_csv/tbl1.csv`，内容同 MySQL 模式）。

   #### 说明

   与 MySQL 模式相同，需使用 `--local-infile` 连接；`INFILE` 路径为客户端本地路径，且不支持旁路 Hint。

      1. 在客户端创建目录与文件。

        ```

        ```
 2. 使用本地 infile 能力连接数据库（示例租户 `oracle001`）。

   ```shell
   obclient --local-infile -h10.10.10.1 -P2881 -usys@oracle001 -p******

      1. 创建表 `tbl2`（与上文 Oracle 模式 `LOAD DATA INFILE` 全量示例一致）。

              ```shell
              obclient [SYS]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [SYS]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ','(col1,col2);
              Query OK, 3 rows affected
              Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

              ```shell
              obclient [SYS]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 partition(p0, p1)  FIELDS TERMINATED BY ',';

              ```shell
              obclient [SYS]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 partition(p0sp0_1, p1sp1_1)  FIELDS TERMINATED BY ',';

       ```shell
       obclient [SYS]> LOAD DATA LOCAL INFILE '/home/admin/client_csv/tbl1.csv' INTO TABLE tbl2 FIELDS TERMINATED BY ',';

        ```

        查询结果如下：

        ```

## 相关文档

- [数据导入概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006277724)
 - [LOAD DATA（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686093)
 - [LOAD DATA（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687586)
 - [使用 LOAD DATA 语句导入数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682256)

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