---
title: OceanBase 数据库预留关键字相关问题总结-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 OceanBase 数据库预留关键字相关问题总结相关的常见问题和使用技巧，帮助您快速解决 OceanBase 数据库预留关键字相关问题总结的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# OceanBase 数据库预留关键字相关问题总结

更新时间：2026-05-18 09:11

适用版本： V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x、V4.3.x 内容类型：TechNote  

本文以 **OceanBase 数据库 V4.3.5 版本** 为例，介绍 OceanBase 数据库预留关键字相关问题总结。

OceanBase 数据库 MySQL 模式兼容原生 MySQL 语法，预留关键字语法规则亦然。

OceanBase 数据库 Oracle 模式兼容原生 Oracle 语法，预留关键字语法规则亦然。

无论在原生 MySQL，原生 Oracle，还是 OceanBase 数据库，所有 SQL （DDL、DML 等）和所有对象名（表名、列名、参数名等）建议按如下规则使用：

**建议一：尽量避免使用预留关键字**。

避免使用当前数据库预留关键字，甚至避免使用主流数据库（Oracle、MySQL、PostgreSQL 等）所有的预留关键字，以避免开发过程中或异构数据库迁移过程中不必要的问题。

OceanBase 数据库用预留关键字详见：[预留关键字（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013011)、[预留关键字（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013012)。

**建议二：如使用预留关键字，建议按相应数据库最佳实践使用**。

**在原生 MySQL 或 OceanBase 数据库 MySQL 模式下：**

1.1 所有 SQL 中预留关键字使用反引号（back quotes）括起来。

1.2 预留关键字全部小写。

推荐用法示例如下。

```shell
CREATE TABLE test_quote (`key` VARCHAR(20));
SELECT `key` FROM test_quote;

```

**在原生 Oracle 或 OceanBase 数据库 Oracle 模式下：**

2.1 所有 SQL 中预留关键字使用双引号 (double quotes) 括起来

2.2 预留关键字全部大写

推荐用法示例如下。

```shell
CREATE TABLE test_comment ("COMMENT" VARCHAR2(20));
SELECT "COMMENT" FROM test_comment;

```

## 详细说明

在如下场景中，我们有时会遇到预留关键字相关的问题。

### 问题一：预留关键字与函数名重名

在原生 Oracle 或 OceanBase 数据库 Oracle 模式中，`USER` 既是[预留关键字](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/Oracle-SQL-Reserved-Words.html)，也是[内置函数](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/USER.html)，使用时需要特别注意，因为**无论加不加双引号，它都不会报错**，但可能得不到你期望的结果。

未使用双引号时，它是[内置函数](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/USER.html)，用于返回当前数据库会话的用户名（即登录数据库的用户）。

```shell
SQL> SELECT user FROM test_quote;

USER
--------------------------------------------------------------------------------
ALVIN

```

使用双引号时，它是列名 ([预留关键字](https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/Oracle-SQL-Reserved-Words.html)需要使用双引号括起来)。

```shell
SQL> SELECT "USER" FROM test_quote;

USER
------------------------------------------------------------
TOM

```

测试用例如下。

```shell
CREATE TABLE test_quote (user VARCHAR2(20));
CREATE TABLE test_quote ("USER" VARCHAR2(20));
INSERT INTO test_quote ("USER")  VALUES ('TOM');
COMMIT;
SELECT user FROM test_quote;
SELECT "USER" FROM test_quote;

```

在原生 Oracle 中测试结果如下。

```shell
SQL*Plus: Release 11.2.0.1.0 Production on Wed Apr 30 17:56:40 2025

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> CREATE TABLE test_quote (user VARCHAR2(20));
CREATE TABLE test_quote (user VARCHAR2(20))
                         *
ERROR at line 1:
ORA-00904: : invalid identifier

SQL> CREATE TABLE test_quote ("USER" VARCHAR2(20));

Table created.

SQL> INSERT INTO test_quote ("USER")  VALUES ('TOM');

1 row created.

SQL> COMMIT;

Commit complete.

SQL> SELECT user FROM test_quote;

SQL> SELECT "USER" FROM test_quote;

```

故在 OceanBase 数据库 Oracle 模式下查询系统视 `gv$ob_processlist` 的 "USER" 列时需要注意加双引号，如下。

```shell
SELECT "USER" FROM gv$ob_processlist WHERE rownum<=1;

```

### 问题二：SQL 语法报错

**在原生 MySQL 或 OceanBase 数据库 MySQL 模式下，如 SQL 中预留关键字未使用反引号 (back quotes) 括起来，则语法报错**。

原生 MySQL 测试结果如下。

```shell
Server version: 8.0.41 Homebrew

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE TABLE test_quote (key VARCHAR(20));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR(20))' at line 1
mysql> CREATE TABLE test_quote (`key` VARCHAR(20));
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO test_quote (`key`)  VALUES ('MyKey');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT key FROM test_quote;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'key FROM test_quote' at line 1
mysql> SELECT `key` FROM test_quote;
+-------+
| key   |
+-------+
| MyKey |
+-------+
1 row in set (0.00 sec)

```

**在原生 Oracle 或 OceanBase 数据库 Oracle 模式下，如 SQL 中预留关键字未使用双引号 (double quotes) 括起来，则语法报错**。

```shell
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> CREATE TABLE test_comment (comment VARCHAR2(20));
CREATE TABLE test_comment (comment VARCHAR2(20))
                           *
ERROR at line 1:
ORA-00904: : invalid identifier

SQL> CREATE TABLE test_comment ("COMMENT" VARCHAR2(20));

SQL> INSERT INTO test_comment ("COMMENT")  VALUES ('COMMENT');

SQL> SELECT comment FROM test_comment;
SELECT comment FROM test_comment
       *
ERROR at line 1:
ORA-00936: missing expression

SQL> SELECT "comment" FROM test_comment;
SELECT "comment" FROM test_comment
       *
ERROR at line 1:
ORA-00904: "comment": invalid identifier

SQL> SELECT "COMMENT" FROM test_comment;

COMMENT
------------------------------------------------------------
COMMENT

```

### 问题三：预留关键字列名大小写查询问题

**在原生 Oracle 或 OceanBase 数据库 Oracle 模式下，列名使用双引号 (double quotes) 括起来后是区分大小写的**。

测试用例如下。

```shell
CREATE TABLE test_case ("COMMENT" VARCHAR2(20));
SELECT "comment" FROM test_case;
SELECT "COMMENT" FROM test_case;

```

SQL> CREATE TABLE test_case ("COMMENT" VARCHAR2(20));

SQL> SELECT "comment" FROM test_case;
SELECT "comment" FROM test_case
       *
ERROR at line 1:
ORA-00904: "comment": invalid identifier

SQL> SELECT "COMMENT" FROM test_case;

no rows selected

```

**在原生 MySQL 或 OceanBase 数据库 MySQL 模式下，列名使用反引号 (back quotes) 括起来后是不区分大小写的**。

注：Linux 上**表名**在 `lower_case_table_names` 为 0 是**区分**大小写的，但所有情况下**列名**是**不区分**大小写的。

测试用例如下。

```shell
CREATE TABLE test_case (`Key` VARCHAR(20));
SELECT `KEY` FROM test_case;
SELECT `key` FROM test_case;

```

原生 MySQL 测试结果如下，**列名**即使使用反引号（back quotes）括起来后，DDL/DML 是**不区分大小写**的。

mysql> CREATE TABLE test_case (`Key` VARCHAR(20));
Query OK, 0 rows affected (0.02 sec)

mysql> SELECT `KEY` FROM test_case;
Empty set (0.01 sec)

mysql> SELECT `key` FROM test_case;
Empty set (0.00 sec)

```

从如下结果中可以看出，元数据中列名（`Key`）是区分大小写，但查询 `information_schema.columns` 时列名不区分大小写。为避免其他不必要的问题，**建议**原生 MySQL 或 OceanBase 数据库 MySQL 模式下**列名统一小写**。

```shell
mysql> SHOW CREATE TABLE test_case;
+-----------+------------------------------------------------------+
| Table     | Create Table                                                                                                                   |
+-----------+------------------------------------------------------+
| test_case | CREATE TABLE `test_case` (
  `Key` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-----------+------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT table_schema,table_name,column_name,data_type FROM information_schema.columns WHERE table_name = 'test_case' AND column_name='key';
+--------------+------------+-------------+-----------+
| TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | DATA_TYPE |
+--------------+------------+-------------+-----------+
| test         | test_case  | Key         | varchar   |
+--------------+------------+-------------+-----------+
1 row in set (0.00 sec)

```

### 问题四：异构数据库迁移问题

当从原生 MySQL 迁移至 OceanBase 数据库 Oracle 模式或从 Oracle 迁移至 OceanBase 数据库 MySQL 模式时，需要注意异构数据库预留关键字的差异。

应用程序中的 SQL 有可能需要做相应修改，即 SQL 中预留关键字使用双引号（double quotes）或反引号（back quotes）括起来。

从原生 MySQL 迁移至 OceanBase 数据库 Oracle 模式时，在源库 MySQL 中排查预留关键字使用情况 SQL 如下。

```shell
SELECT table_schema,table_name,column_name FROM information_schema.columns WHERE column_name IN ('ACCESS','ADD','ALL','ALTER','AND','ANY','AS','ASC','AUDIT','BETWEEN','BY','CHAR','CHECK','CLUSTER','COLUMN','COMMENT','COMPRESS','CONNECT','CREATE','CURRENT','CASE','CONNECT_BY_ROOT','DATE','DECIMAL','DEFAULT','DELETE','DESC','DISTINCT','DROP','DUAL','ELSE','EXCLUSIVE','EXISTS','FILE','FLOAT','FOR','FROM','GRANT','GROUP','HAVING','IDENTIFIED','IMMEDIATE','IN','INCREMENT','INDEX','INITIAL','INSERT','INTEGER','INTERSECT','INTO','IS','LEVEL','LIKE','LOCK','LONG','MAXEXTENTS','MINUS','MODE','MODIFY','NOAUDIT','NOCOMPRESS','NOT','NOTFOUND','NOWAIT','NULL','NUMBER','OF','OFFLINE','ON','ONLINE','OPTION','OR','ORDER','PCTFREE','PRIOR','PRIVILEGES','PUBLIC','RAW','RENAME','RESOURCE','REVOKE','ROW','ROWID','ROWLABEL','ROWNUM','ROWS','START','SELECT','SESSION','SET','SHARE','SIZE','SMALLINT','SUCCESSFUL','SYNONYM','SYSDATE','SQL_CALC_FOUND_ROWS','TABLE','THEN','TO','TRIGGER','UID','UNION','UNIQUE','UPDATE','USER','VALIDATE','VALUES','VARCHAR','VARCHAR2','VIEW','WHENEVER','WHERE','WITH')
AND table_schema NOT IN ('performance_schema','mysql','sys','information_schema')
ORDER BY column_name,table_schema;

```

从 Oracle 迁移至 OceanBase 数据库 MySQL 模式时，在源库 Oracle 中排查预留关键字使用情况 SQL 如下。

```shell
SELECT owner,table_name,column_name FROM dba_tab_columns WHERE column_name IN (
'accessible','add','alter','analyze','as','asc','asensitive','before','between','bigint','binary','blob','call','cascade','case','change','char','character','check','collate','column','condition','constraint','continue','convert','create','cross','current_date','current_time','current_timestamp','current_user','cursor','database','databases','day_hour','day_microsecond','day_minute','day_second','declare','decimal','default','delayed','delete','desc','describe','deterministic','distinctrow','div','double','drop','dual','each','else','elseif','enclosed','escaped','exists','exit','explain','fetch','float','float4','float8','for','force','foreign','fulltext','generated','get','grant','group','having','high_priority','hour_microsecond','hour_minute','hour_second','if','ignore','in','index','infile','inner','inout','insensitive','insert','int','int1','int2','int3','int4','int8','integer','interval','into','io_after_gtids','io_before_gtids','is','iterate','join','key','keys','kill','leave','left','like','limit','linear','lines','load','localtime','localtimestamp','long','longblob','longtext','loop','low_priority','master_bind','master_ssl_verify_server_cert','match','maxvalue','mediumblob','mediumint','mediumtext','middleint','minute_microsecond','minute_second','mod','modifies','natural','not','no_write_to_binlog','numeric','on','optimize','option','optionally','or','order','out','outer','outfile','partition','precision','primary','procedure','purge','range','read','reads','read_write','real','references','regexp','release','rename','repeat','replace','require','resignal','restrict','return','revoke','right','rlike','schema','schemas','second_microsecond','sensitive','separator','set','show','signal','smallint','spatial','specific','sql','sqlexception','sqlstate','sqlwarning','sql_big_result','sql_small_result','ssl','skip','starting','stored','table','terminated','then','tinyblob','tinyint','tinytext','to','trigger','undo','union','unlock','unsigned','update','usage','use','using','utc_date','utc_time','utc_timestamp','values','varbinary','varchar','varcharacter','varying','virtual','where','while','with','write','xor','year_month','zerofill'
) ORDER BY owner,table_name,column_name;

```

### 问题五：OceanBase 数据字典中的预留关键字

由于 OceanBase 数据库 MySQL 模式中增加了 Oracle 兼容视图 ([`DBA_PART_TABLES.INTERVAL`](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DBA_PART_TABLES.html)) 等原因，查询 OceanBase 数据库数据字典时，需要注意列名使用预留关键字的情况。

**OceanBase 数据库 MySQL 模式数据字典中列名使用预留关键字统计如下**。

OceanBase 数据库 MySQL 模式中查询 SQL。

```shell
SELECT table_schema,table_name,column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name IN ('accessible','add','alter','analyze','as','asc','asensitive','before','between','bigint','binary','blob','call','cascade','case','change','char','character','check','collate','column','condition','constraint','continue','convert','create','cross','current_date','current_time','current_timestamp','current_user','cursor','database','databases','day_hour','day_microsecond','day_minute','day_second','declare','decimal','default','delayed','delete','desc','describe','deterministic','distinctrow','div','double','drop','dual','each','else','elseif','enclosed','escaped','exists','exit','explain','fetch','float','float4','float8','for','force','foreign','fulltext','generated','get','grant','group','having','high_priority','hour_microsecond','hour_minute','hour_second','if','ignore','in','index','infile','inner','inout','insensitive','insert','int','int1','int2','int3','int4','int8','integer','interval','into','io_after_gtids','io_before_gtids','is','iterate','join','key','keys','kill','leave','left','like','limit','linear','lines','load','localtime','localtimestamp','long','longblob','longtext','loop','low_priority','master_bind','master_ssl_verify_server_cert','match','maxvalue','mediumblob','mediumint','mediumtext','middleint','minute_microsecond','minute_second','mod','modifies','natural','not','no_write_to_binlog','numeric','on','optimize','option','optionally','or','order','out','outer','outfile','partition','precision','primary','procedure','purge','range','read','reads','read_write','real','references','regexp','release','rename','repeat','replace','require','resignal','restrict','return','revoke','right','rlike','schema','schemas','second_microsecond','sensitive','separator','set','show','signal','smallint','spatial','specific','sql','sqlexception','sqlstate','sqlwarning','sql_big_result','sql_small_result','ssl','skip','starting','stored','table','terminated','then','tinyblob','tinyint','tinytext','to','trigger','undo','union','unlock','unsigned','update','usage','use','using','utc_date','utc_time','utc_timestamp','values','varbinary','varchar','varcharacter','varying','virtual','where','while','with','write','xor','year_month','zerofill')
ORDER BY column_name,table_schema;

```

OceanBase 数据库 MySQL 模式中查询结果。

```shell
+--------------+------------------------------------+-------------+
| table_schema | table_name                         | column_name |
+--------------+------------------------------------+-------------+
| oceanbase    | __tenant_virtual_table_column      | default     |
| oceanbase    | DBA_OBJECTS                        | GENERATED   |
| oceanbase    | __all_virtual_obrpc_stat           | index       |
| oceanbase    | DBA_IND_PARTITIONS                 | INTERVAL    |
| oceanbase    | DBA_PART_INDEXES                   | INTERVAL    |
| oceanbase    | DBA_IND_SUBPARTITIONS              | INTERVAL    |
| oceanbase    | DBA_TAB_SUBPARTITIONS              | INTERVAL    |
| oceanbase    | DBA_PART_TABLES                    | INTERVAL    |
| oceanbase    | DBA_TAB_PARTITIONS                 | INTERVAL    |
| oceanbase    | V$SQL_PLAN_MONITOR                 | KEY         |
| oceanbase    | GV$SQL_PLAN_MONITOR                | KEY         |
| oceanbase    | __all_dummy                        | key         |
| oceanbase    | __tenant_virtual_table_column      | key         |
| oceanbase    | __all_virtual_tenant_memory_info   | limit       |
| oceanbase    | __tenant_virtual_object_definition | schema      |
| oceanbase    | __tenant_virtual_table_index       | table       |
+--------------+------------------------------------+-------------+
16 rows in set (0.056 sec)

```

OceanBase 数据库 MySQL 模式中测试如下。

```shell
obclient [oceanbase]> SELECT key FROM oceanbase.v$sql_plan_monitor LIMIT 1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'FROM oceanbase.v$sql_plan_monitor LIMIT 1' at line 1
obclient [oceanbase]> SELECT `key` FROM oceanbase.v$sql_plan_monitor LIMIT 1;
Empty set (0.050 sec)

obclient [oceanbase]> SELECT interval FROM oceanbase.dba_part_tables LIMIT 1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'FROM oceanbase.dba_part_tables LIMIT 1' at line 1
obclient [oceanbase]> SELECT `interval` FROM oceanbase.dba_part_tables LIMIT 1;
+----------+
| interval |
+----------+
| NULL     |
+----------+
1 row in set (0.087 sec)

```

**OceanBase 数据库 Oracle 模式数据字典中列名使用预留关键字统计如下**。

OceanBase 数据库 Oracle 模式中查询 SQL。

```shell
SELECT owner,table_name,column_name FROM dba_tab_columns WHERE column_name IN (
'ACCESS','ADD','ALL','ALTER','AND','ANY','AS','ASC','AUDIT','BETWEEN','BY','CHAR','CHECK','CLUSTER','COLUMN','COMMENT','COMPRESS','CONNECT','CREATE','CURRENT','CASE','CONNECT_BY_ROOT','DATE','DECIMAL','DEFAULT','DELETE','DESC','DISTINCT','DROP','DUAL','ELSE','EXCLUSIVE','EXISTS','FILE','FLOAT','FOR','FROM','GRANT','GROUP','HAVING','IDENTIFIED','IMMEDIATE','IN','INCREMENT','INDEX','INITIAL','INSERT','INTEGER','INTERSECT','INTO','IS','LEVEL','LIKE','LOCK','LONG','MAXEXTENTS','MINUS','MODE','MODIFY','NOAUDIT','NOCOMPRESS','NOT','NOTFOUND','NOWAIT','NULL','NUMBER','OF','OFFLINE','ON','ONLINE','OPTION','OR','ORDER','PCTFREE','PRIOR','PRIVILEGES','PUBLIC','RAW','RENAME','RESOURCE','REVOKE','ROW','ROWID','ROWLABEL','ROWNUM','ROWS','START','SELECT','SESSION','SET','SHARE','SIZE','SMALLINT','SUCCESSFUL','SYNONYM','SYSDATE','SQL_CALC_FOUND_ROWS','TABLE','THEN','TO','TRIGGER','UID','UNION','UNIQUE','UPDATE','USER','VALIDATE','VALUES','VARCHAR','VARCHAR2','VIEW','WHENEVER','WHERE','WITH'
) AND owner = 'SYS' ORDER BY owner,table_name,column_name;

```

OceanBase 数据库 Oracle 模式中查询结果。

```shell
+-------+----------------------------------------+-------------+
| OWNER | TABLE_NAME                             | COLUMN_NAME |
+-------+----------------------------------------+-------------+
| SYS   | DBA_OB_ARCHIVELOG                      | COMMENT     |
| SYS   | DBA_OB_ARCHIVELOG_SUMMARY              | COMMENT     |
| SYS   | DBA_OB_BACKUP_DELETE_JOBS              | COMMENT     |
| SYS   | DBA_OB_BACKUP_DELETE_JOB_HISTORY       | COMMENT     |
| SYS   | DBA_OB_BACKUP_DELETE_TASKS             | COMMENT     |
| SYS   | DBA_OB_BACKUP_DELETE_TASK_HISTORY      | COMMENT     |
| SYS   | DBA_OB_BACKUP_JOBS                     | COMMENT     |
| SYS   | DBA_OB_BACKUP_JOB_HISTORY              | COMMENT     |
| SYS   | DBA_OB_BACKUP_SET_FILES                | COMMENT     |
| SYS   | DBA_OB_BACKUP_TASKS                    | COMMENT     |
| SYS   | DBA_OB_BACKUP_TASK_HISTORY             | COMMENT     |
| SYS   | DBA_OB_BALANCE_JOBS                    | COMMENT     |
| SYS   | DBA_OB_BALANCE_JOB_HISTORY             | COMMENT     |
| SYS   | DBA_OB_BALANCE_TASKS                   | COMMENT     |
| SYS   | DBA_OB_BALANCE_TASK_HISTORY            | COMMENT     |
| SYS   | DBA_OB_DATABASES                       | COMMENT     |
| SYS   | DBA_OB_IMPORT_TABLE_JOBS               | COMMENT     |
| SYS   | DBA_OB_IMPORT_TABLE_JOB_HISTORY        | COMMENT     |
| SYS   | DBA_OB_IMPORT_TABLE_TASKS              | COMMENT     |
| SYS   | DBA_OB_IMPORT_TABLE_TASK_HISTORY       | COMMENT     |
| SYS   | DBA_OB_LS_ARB_REPLICA_TASKS            | COMMENT     |
| SYS   | DBA_OB_LS_ARB_REPLICA_TASK_HISTORY     | COMMENT     |
| SYS   | DBA_OB_LS_REPLICA_TASKS                | COMMENT     |
| SYS   | DBA_OB_LS_REPLICA_TASK_HISTORY         | COMMENT     |
| SYS   | DBA_OB_RECOVER_TABLE_JOBS              | COMMENT     |
| SYS   | DBA_OB_RECOVER_TABLE_JOB_HISTORY       | COMMENT     |
| SYS   | DBA_OB_RESTORE_HISTORY                 | COMMENT     |
| SYS   | DBA_OB_TRANSFER_PARTITION_TASKS        | COMMENT     |
| SYS   | DBA_OB_TRANSFER_PARTITION_TASK_HISTORY | COMMENT     |
| SYS   | DBA_OB_TRANSFER_TASKS                  | COMMENT     |
| SYS   | DBA_OB_TRANSFER_TASK_HISTORY           | COMMENT     |
| SYS   | GV$OB_FLT_TRACE_CONFIG                 | LEVEL       |
| SYS   | GV$OB_FUNCTION_IO_STAT                 | MODE        |
| SYS   | GV$OB_FUNCTION_IO_STAT                 | SIZE        |
| SYS   | GV$OB_GROUP_IO_STAT                    | MODE        |
| SYS   | GV$OB_PLAN_CACHE_PLAN_EXPLAIN          | ROWS        |
| SYS   | GV$OB_PROCESSLIST                      | LEVEL       |
| SYS   | GV$OB_PROCESSLIST                      | USER        |
| SYS   | GV$OB_SESSION                          | USER        |
| SYS   | GV$OB_SQL_AUDIT                        | LEVEL       |
| SYS   | GV$OB_SSTABLES                         | SIZE        |
| SYS   | V$OB_ARCHIVE_DEST_STATUS               | COMMENT     |
| SYS   | V$OB_FUNCTION_IO_STAT                  | MODE        |
| SYS   | V$OB_FUNCTION_IO_STAT                  | SIZE        |
| SYS   | V$OB_GROUP_IO_STAT                     | MODE        |
| SYS   | V$OB_LS_LOG_RESTORE_STATUS             | COMMENT     |
| SYS   | V$OB_LS_REPLICA_TASK_PLAN              | COMMENT     |
| SYS   | V$OB_PLAN_CACHE_PLAN_EXPLAIN           | ROWS        |
| SYS   | V$OB_PROCESSLIST                       | LEVEL       |
| SYS   | V$OB_PROCESSLIST                       | USER        |
| SYS   | V$OB_SESSION                           | USER        |
| SYS   | V$OB_SQL_AUDIT                         | LEVEL       |
| SYS   | V$OB_SSTABLES                          | SIZE        |
+-------+----------------------------------------+-------------+
53 rows in set (0.158 sec)

```

OceanBase 数据库 Oracle 模式中测试如下。

```shell
obclient [ALVIN]> SELECT USER FROM gv$ob_processlist WHERE rownum<=1;
+------+
| USER |
+------+
| ALVIN  |
+------+
1 row in set (1.218 sec)

obclient [ALVIN]> SELECT "USER" FROM gv$ob_processlist WHERE rownum<=1;
+------+
| USER |
+------+
| SYS  |
+------+
1 row in set (0.408 sec)
obclient [ALVIN]> SELECT COMMENT FROM dba_ob_databases WHERE rownum<=1;
OBE-00900: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'COMMENT FROM dba_ob_databases WHERE rownum<=1' at line 1
obclient [ALVIN]> SELECT "COMMENT" FROM dba_ob_databases WHERE rownum<=1;
+-----------------+
| COMMENT         |
+-----------------+
| system database |
+-----------------+
1 row in set (0.008 sec)

```

附:

原生 Oracle 数据字典中列名使用预留关键字统计如下。

```shell

OWNER     TABLE_NAME                    COLUMN_NAME
------------------------------ ------------------------------ ------------------------------
SYS       GV_$ARCHIVE                    CURRENT
SYS       GV_$LATCH_MISSES               WHERE
SYS       GV_$RECOVER_FILE               ONLINE
SYS       GV_$SORT_USAGE                 USER
SYS       V_$ARCHIVE                     CURRENT
SYS       V_$DIAG_DDE_USR_ACT_PARAM_DEF  DEFAULT
SYS       V_$DIAG_DIR_EXT                LEVEL
SYS       V_$DIAG_HM_RUN                 MODE
SYS       V_$DIAG_IPS_PACKAGE_HISTORY    MODE
SYS       V_$DIAG_IPS_PKG_UNPACK_HIST    MODE
SYS       V_$DIAG_VHM_RUN                MODE
SYS       V_$DIAG_VIPS_PACKAGE_HISTORY   MODE
SYS       V_$LATCH_MISSES                WHERE
SYS       V_$RECOVER_FILE                ONLINE
SYS       V_$SORT_USAGE                  USER

15 rows selected.

```

## 适用版本

OceanBase 数据库 V3.x、V4.x 版本。

上一篇

[字符集转换问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002762603)

下一篇

[VARCHAR2 类型和 NVARCHAR2 类型的转换限制及绕过方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003100052) ![有帮助](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) 咨询热线
