---
title: "CREATE FORMAT OUTLINE - OceanBase 数据库 V4.5.0 | OceanBase 文档中心"
description: CREATE FORMAT OUTLINE 描述 该语句用来创建模糊 Outline。可以通过两种方式创建模糊 Outline，一种是通过 FORMAT_SQL_TEXT （用户执行的带参数的原始语句），另一种是通过 FORMAT_SQL_ID 创建。 使用限制及注意事项 创建 Outline 需要进入对应的用户下执…
---
切换语言

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

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

# CREATE FORMAT OUTLINE

更新时间：2026-02-12 13:19:06

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.5.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/200.common-tenant-of-mysql-mode/600.sql-statement-of-mysql-mode/2350.create-format-outline-of-mysql-mode.md)  

## 描述

该语句用来创建模糊 Outline。可以通过两种方式创建模糊 Outline，一种是通过 `FORMAT_SQL_TEXT`（用户执行的带参数的原始语句），另一种是通过 `FORMAT_SQL_ID` 创建。

## 使用限制及注意事项

- 创建 Outline 需要进入对应的用户下执行。
 - 当 `FORMAT_SQL_ID` 相同时，使用 `FORMAT_SQL_TEXT` 方式创建的 Outline 会覆盖 `FORMAT_SQL_ID` 方式创建的 Outline，`FORMAT_SQL_TEXT` 方式创建的优先级更高。此外，OceanBase 数据库通过 `FORMAT_SQL_ID` 区分不同的 SQL，而 `FORMAT_SQL_ID` 是通过 `FORMAT_SQL_TEXT` 取 `MD5` 加密得到的。在实际生产系统中，推荐通过 `FORMAT_SQL_ID` 进行 Outline 绑定。

  #### 说明

     - `FORMAT_SQL_TEXT` 的匹配规则忽略参数内容、大小写以及空格和换行符等非语法性符号的差异，只比较经过这些处理后的文本内容。
     - `FORMAT_SQL_ID` 是通过格式化 `FORMAT_SQL_TEXT`（移除多余的空格和换行符，将所有字符统一转换为大写或小写）之后，对格式化的结果应用 `MD5` 哈希加密来生成的。

## 语法

```sql
/* 使用 FORMAT_SQL_TEXT 创建 Outline */
CREATE [OR REPLACE] FORMAT OUTLINE outline_name ON format_stmt [ TO format_target_stmt ]

/* 使用 FORMAT_SQL_ID 创建 Outline */
CREATE [OR REPLACE] FORMAT OUTLINE outline_name ON format_sql_id USING HINT hint;

```

## 参数解释

| 参数 | 描述 |
| --- | --- |
| outline_name | 指定要创建的模糊 Outline 名称。 |
| OR REPLACE | 如果指定 `OR REPLACE`，并且要创建的 Outline 已存在，则替换原有的 Outline。 |
| format_stmt | 指定 SQL 原始文本，即希望应用 Outline 的 SQL 语句或操作。   #### 说明    OceanBase 数据库内部会自动把非格式化的 SQL 文本处理成格式化的 SQL 文本。 |
| TO format_target_stmt | 可选项，用于指定将 `format_stmt` 转换或应用到的目标 SQL 语句，即让 Outline 也适用于其它的 SQL 语句，可以使用 TO format_target_stmt 这个选项来声明这些 SQL 语句。   #### 注意    - 如果期望对含有 Hint 的语句进行固定计划，则应使用 `format_target_stmt` 指明原始 SQL。 - 在使用 `TO format_target_stmt` 子句时，要求原始 SQL `format_stmt` 与 `format_target_stmt` 在去掉 Hint 并且格式化处理后匹配。 |
| format_sql_id | 需要绑定的 SQL 对应的经过一系列规则改写后得到的 `format_stmt`，然后根据 `format_stmt` 计算 `MD5` 值得到的 `format_sql_id`。 |

## 示例

- 使用 `FORMAT_SQL_TEXT` 创建 Outline。

  ```sql
  CREATE FORMAT OUTLINE my_outline ON SELECT * FROM employees WHERE department_id = ?;

  ```
 - 使用 `FORMAT_SQL_ID` 创建 Outline。

  ```sql
  CREATE FORMAT OUTLINE my_sql_id_outline ON 'ED570339F2C856BA96008A29EDF04C74' USING HINT /*+ index(t1 idx_c2)*/;

  ```

## 相关文档

更多使用 Outline 的示例信息，请参见 [计划绑定](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000004480378)。

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