You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19.16版本主键列VARCHAR类型的最大长度咨询

Oracle 19c中VARCHAR类型主键的长度限制问题

并非Oracle 19.16.0.0.0版本固定限制主键VARCHAR的最大字符数为1599,这个数值是由你的数据库字符集和数据块大小共同决定的:

  • 主键创建时会自动生成对应的唯一B树索引,而B树索引的单条键值有字节长度限制:19c理论上限是32767字节,但实际受数据块大小约束——索引块需要预留空间存储元数据,所以实际允许的键值字节数约为数据块大小的一半(比如8K块约4000字节,16K块约8000字节)。
  • 当用VARCHAR(n CHAR)定义列时,实际占用的字节数由字符集决定:比如AL32UTF8字符集每个字符最多占4字节,UTF8最多占3字节,单字节字符集(如WE8MSWIN1252)每个字符占1字节。
  • 你遇到的1599字符可正常创建、4000字符报错的情况,是因为4000字符转换为字节后,超过了当前数据库配置下索引允许的最大键值字节长度,而1599字符对应的字节数刚好在允许范围内。

你执行的报错SQL语句:

CREATE TABLE table( PK1_name varchar(4000 char) PRIMARY KEY NOT NULL);

(注:table是Oracle关键字,建议改用合法表名)

内容的提问来源于stack exchange,提问作者anurag1007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:50:29