Skip to content

LOAD_FILE()

函数说明

LOAD_FILE() 函数用于读取 datalink 类型指向文件的内容。

Note

当使用 load_file() 加载大文件时,若文件数据量过大,可能会超出系统内存限制,导致内存溢出。建议结合 DATALINKoffsetsize 使用。

函数语法

>LOAD_FILE(datalink_type_data) ;

参数释义

参数 说明
datalink_type_data datalink 类型数据,可以使用cast()函数进行转换

示例

/Users/admin/case 下有文件 t1.csv

(base) admin@192 case % cat t1.csv 
this is a test message
create table t1 (col1 int, col2 datalink);
create stage stage1 url='file:///Users/admin/case/';
insert into t1 values (1, 'file:///Users/admin/case/t1.csv');
insert into t1 values (2, 'stage://stage1//t1.csv');

mysql> select * from t1;
+------+---------------------------------+
| col1 | col2                            |
+------+---------------------------------+
|    1 | file:///Users/admin/case/t1.csv |
|    2 | stage://stage1//t1.csv          |
+------+---------------------------------+
2 rows in set (0.00 sec)

mysql> select col1, load_file(col2) from t1;
+------+-------------------------+
| col1 | load_file(col2)         |
+------+-------------------------+
|    1 | this is a test message
 |
|    2 | this is a test message
 |
+------+-------------------------+
2 rows in set (0.01 sec)


mysql> select load_file(cast('file:///Users/admin/case/t1.csv' as datalink));
+--------------------------------------------------------------+
| load_file(cast(file:///Users/admin/case/t1.csv as datalink)) |
+--------------------------------------------------------------+
| this is a test message
                                      |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select load_file(cast('stage://stage1//t1.csv' as datalink));
+-----------------------------------------------------+
| load_file(cast(stage://stage1//t1.csv as datalink)) |
+-----------------------------------------------------+
| this is a test message
                             |
+-----------------------------------------------------+
1 row in set (0.00 sec)