---
title: "SET 变量 - 命令行客户端 V2.2.13 | OceanBase 文档中心"
description: "SET 变量 OBClient 支持多种 SET 变量，用于控制客户端的行为和输出格式。以下是一些常用的 SET 变量。 SET DEFINE 设置用于前缀替换变量的字符。 语法： SET DEF[INE] {&amp; | c | ON | OFF} 说明： SET DEFINE ON ：将替换字符设置为 &amp; ，并打开开关…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*1DGSQqsgFKcAAAAARrAAAAgAeiGDAQ/original) 命令行客户端V 2.2.13

# SET 变量

更新时间：2026-06-30 18:11:26

[编辑](https://github.com/oceanbase/obclient/edit/V2.2.13/zh-CN/600.advanced-features/260.set-system-variables.md)  

OBClient 支持多种 SET 变量，用于控制客户端的行为和输出格式。以下是一些常用的 SET 变量。

## SET DEFINE

设置用于前缀替换变量的字符。

**语法：**

```sql
SET DEF[INE] {& | c | ON | OFF}

```

**说明：**

- `SET DEFINE ON`：将替换字符设置为 `&`，并打开开关
 - `SET DEFINE $`：将替换字符设置为 `$`，并打开开关（不能是字母数字空格）
 - `SET DEFINE OFF`：关闭替换变量功能

**示例：**

```sql
SET DEFINE ON;
SET DEFINE $;
SET DEFINE OFF;

```

#### 说明

替换字符连续出现两次表示永久变量，一次表示必须输入。每次都从永久变量中读取，没有就输入。

## SET FEEDBACK

控制查询结果返回的记录数显示。

**语法：**

```sql
SET FEED[BACK] {6 | n | ON | OFF}

```

**说明：**

- `n`：当查询返回至少 n 条记录时显示记录数（n 必须是 0-50000）
 - `ON`：打开反馈，相当于设置为 1
 - `OFF`：关闭反馈

`SET FEEDBACK OFF` 还会关闭在 SQL 或 PL/SQL 语句成功后显示的语句确认消息，例如"表已创建"和"PL/SQL 过程已成功完成"。

**示例：**

```sql
SET FEEDBACK ON;
SET FEEDBACK 10;
SET FEEDBACK OFF;

```

## SET ECHO

控制在使用 `source` 执行的脚本中是否回显命令。

**语法：**

```sql
SET ECHO {ON | OFF}

```

**说明：**

- `ON`：显示屏幕上的命令
 - `OFF`：抑制显示

ECHO 不会影响您以交互方式输入的命令的显示或从操作系统重定向到 OBClient。

## SET SQLBLANKLINES

控制 SQL*Plus 是否允许 SQL 命令或脚本中的空行。

**语法：**

```sql
SET SQLBL[ANKLINES] {ON | OFF}

```

**说明：**

- `ON`：将空行和新行解释为 SQL 命令或脚本的一部分
 - `OFF`：不允许在 SQL 命令或脚本中出现空行或新行（默认值）

## SET HEADING

控制列标题的打印。

**语法：**

```sql
SET HEA[DING] {ON | OFF}

```

**说明：**

- `ON`：打印列标题（默认值）
 - `OFF`：抑制列标题

`SET HEADING OFF` 命令不会影响显示的列宽，它只会抑制列标题本身的打印。

## SET TERMOUT

控制使用 `source` 执行的脚本中的命令生成的输出的显示。

**语法：**

```sql
SET TERM[OUT] {ON | OFF}

```

**说明：**

- `ON`：在屏幕上显示输出（默认值）
 - `OFF`：抑制显示，以便您可以将输出假脱机到文件，而不在屏幕上显示输出

TERMOUT OFF 不会影响您以交互方式输入的命令的输出或从操作系统重定向到 OBClient。

#### 注意

只有设置了 ON 的才能输出，否则不会输出。

## SET PAGESIZE

设置每页显示的行数。

**语法：**

```sql
SET PAGES[IZE] {14 | n}

```

#### 说明

这个命令可以执行，但是 OBClient 不生效，只为有些 Oracle 脚本可以通过。

## SET TRIMSPOOL

控制假脱机输出中每行末尾的空格是否被修剪。

**语法：**

```sql
SET TRIMS[POOL] {ON | OFF}

```

## SET EXITCOMMIT

指定默认 EXIT 行为是 COMMIT 还是 ROLLBACK。

**语法：**

```sql
SET EXITC[OMMIT] {ON | OFF}

```

**说明：**

- `ON`：退出时提交工作（默认值）
 - `OFF`：退出时回滚工作

#### 注意

此功能在 2.2.6 版本有效。

## SET SERVEROUTPUT

开启或关闭 `DBMS_OUTPUT.PUT_LINE()` 的输出显示。

**语法：**

```sql
SET SERVEROUT[PUT] {ON | OFF}

```

**说明：**

- `ON`：开启 DBMS_OUTPUT 输出显示
 - `OFF`：关闭 DBMS_OUTPUT 输出显示

## SET NUMWIDTH

设置数字列的显示宽度。

**语法：**

```sql
SET NUM[WIDTH] {10 | n}

```

#### 注意

这个功能默认关闭，需要通过环境变量开启：`export DISABLE_SET_NUM_WIDTH=0`

## 相关文档

- [Oracle 模式支持](https://www.oceanbase.com/docs/common-obclient-doc-cn-1000000006361914)
 - [OBClient 概述](https://www.oceanbase.com/docs/common-obclient-doc-cn-1000000006361905)

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