---
title: "SQL 编写限制 - OceanBase 数据库 V4.3.4 | OceanBase 文档中心"
description: SQL 编写限制 本文介绍在 OceanBase 中进行数据库使用编写 SQL 的相关限制。 有主键表需要满足以下规则： 每个数据表最多拥有一个主键列集合。 主键值不能为 NULL 或空串。 主键的值不允许变更。 主键列的数量不能超过 64 列。 主键数据总长度不能超过 16 KB。 当创建 VARCHAR、VARC…
---
切换语言

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

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

# SQL 编写限制

更新时间：2024-12-11 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/700.reference/500.sql-reference/200.sql-specifications-and-practices/100.sql-writing-restrictions.md)  

本文介绍在 OceanBase 中进行数据库使用编写 SQL 的相关限制。

- 有主键表需要满足以下规则：

     - 每个数据表最多拥有一个主键列集合。
     - 主键值不能为 NULL 或空串。
     - 主键的值不允许变更。
     - 主键列的数量不能超过 64 列。
     - 主键数据总长度不能超过 16 KB。
 - 当创建 VARCHAR、VARCHAR2 列时，必须指定列最大长度，且至少为 1 个字节。
 - NUMBER 是变长、精确的数值类型，占 4~40 字节存储空间，可以存储零、浮点数、正的定点数和负的定点数，NUMBER 类型具有较好的数据精确度、通用性强、可移植性强，运算效率相对浮点类型偏低。
 - 引用对象类型的属性和方法：

     - 要在 SQL 语句中引用对象类型属性或方法，必须使用表别名完全限定该引用。
     - 要引用不接受参数的成员方法，必须提供空括号。
 - 使用分区扩展表名和子分区扩展表名时有以下限制：

     - 名称中没有远程表：扩展分区表名和子分区扩展表名不能包含数据库链接或能转换为具有数据库链接的表的同义词。
     - 名称中没有同义词：必须使用基表指定分区或子分区扩展名，不能使用同义词，视图或任何其他对象。
     - 在 PARTITION FOR 和 SUBPARTITION FOR 子句中，不能指定关键字 DEFAULT、MAXVALUE 或绑定变量为 partition_key_value 或 subpartition_key_value 的值。
     - 在 PARTITION 和 SUBPARTITION 子句中，不能为分区或子分区名称指定绑定变量。
 - 不能对回收站的对象做任何写操作（DML 或 DDL 操作），只能进行只读操作（SELECT）。
 - SELECT...FOR UPDATE SKIP LOCKED 只支持单表查询。

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