---
title: "TABLE FUNCTION 概述 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: TABLE FUNCTION 概述 描述 Table Function（表函数）用于把半结构化数据展开为关系行集，可在 SELECT ... FROM 中像表一样被引用。 MySQL 模式下常见的表函数入口包括： JSON_TABLE(...) ：将 JSON 文档展开为行列。 FILES(...) ：从外部文件位置…
---
切换语言

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

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

# TABLE FUNCTION 概述

更新时间：2026-07-14 20:43:11

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/400.functions-of-mysql-mode/760.table-functions-of-mysql-mode/100.table-functions-overview-of-mysql-mode.md)  

## 描述

Table Function（表函数）用于把半结构化数据展开为关系行集，可在 `SELECT ... FROM` 中像表一样被引用。

MySQL 模式下常见的表函数入口包括：

- `JSON_TABLE(...)`：将 JSON 文档展开为行列。
 - `FILES(...)`：从外部文件位置读取数据并作为行集参与查询。

## 语法特点

### 使用位置

表函数作为表因子使用，通常出现在 `FROM` 子句中。

### 别名要求

`JSON_TABLE` 需要指定表别名。

### JSON_TABLE 语法

```sql
JSON_TABLE(
  expr [FORMAT JSON]
  [, json_path_literal]
  [ERROR | NULL ON ERROR]
  COLUMNS (
    column_list
  )
) [AS] alias

column_list:
    column[, column ...]

column:
    column_name FOR ORDINALITY
  | column_name [json_value_return_type] EXISTS [PATH path_literal]
      [json_value_on_error_clause] [json_value_on_empty_clause]
  | column_name [json_query_return_type] FORMAT JSON
      [ALLOW | DISALLOW SCALARS] [json_query_wrapper_clause]
      [PATH path_literal] [json_query_on_error_clause]
  | column_name [json_value_return_type] [TRUNCATE] [PATH path_literal]
      [json_value_on_error_clause] [json_value_on_empty_clause]
  | NESTED PATH path_literal COLUMNS (column_list)

```

#### 说明

上文为 `JSON_TABLE` 的语法结构总览，本页仅列出完整语法骨架，不逐一说明各子句含义与全部可选组合。

当前 OceanBase 版本中各子句的实际支持范围、语义及示例，请以专篇 [JSON_TABLE 函数](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687222) 为准。

常用简写形式（省略部分可选项时）如下：

```sql
JSON_TABLE(expr, path_literal COLUMNS (column_list)) [AS] alias

```

### 列定义能力

`COLUMNS` 子句中的 `column` 主要包括以下几类（详见上文语法块）：

| 列定义形式 | 用途 |
| --- | --- |
| `column_name FOR ORDINALITY` | 为当前输出行生成序号列。 |
| `column_name ... EXISTS [PATH path_literal] ...` | 判断路径上是否存在 JSON 值，返回 `0` 或 `1`。 |
| `column_name ... FORMAT JSON ... [PATH path_literal] ...` | 以 JSON 形式提取路径上的值（可配合 `ALLOW SCALARS` / `DISALLOW SCALARS` 等子句）。 |
| `column_name [data_type] [TRUNCATE] [PATH path_literal] ...` | 将路径上的 JSON 标量转为指定 SQL 类型（可配合 `ON EMPTY` / `ON ERROR`）。 |
| `NESTED PATH path_literal COLUMNS (...)` | 嵌套展开；内层 `column_list` 可重复上述列定义形式。 |

其中 `json_value_on_empty_clause`、`json_value_on_error_clause` 等子句的写法与语义，见 [JSON_TABLE 函数](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687222)。

### FILES 基本语法

```sql
FILES(location_expr, format_expr [, pattern_expr])

```

## 相关文档

- [JSON_TABLE 函数](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687222)
 - [FILES 表函数](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000006086414)
 - [SELECT 语句](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687394)
 - [LOAD DATA 语句](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005686093)

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