ORACLE 中的 VARCHAR2 数据类型

VARCHAR2 datatype in ORACLE

我是 oracle 的新手,今天我发现了数据类型 VARCHAR2,我想了解更多关于它和 google 我遇到的数据类型问题。

我浏览了几篇关于数据类型的文章,发现了一些与 VARCHAR2.

直接相反的描述

描述 1:

描述 2:

如您所见,它有点令人困惑。 VARCHAR2是指定最大列长度还是最大字符长度?有人请解释一下哪一个是正确的?

描述 2:

  • 一个 VARCHAR2 列最多可以存储 4000 个字符。

这是正确的

VARCHAR2 数据类型存储可变长度的字符串。当您使用 VARCHAR2 列创建table时,您指定最大字符串长度(以字节或字符为单位)在 1 到 4000 字节之间 对于 VARCHAR2 列。

这取决于您的 Oracle 版本,但这两篇文章大多不正确。

当您声明该列时,您可以将声明的长度明确声明为字节或字符,或者隐含地使用会话的默认值。

此外,最大长度为 4000 字节,而不是字符。即使声明 VARCHAR2(4000 CHAR),该列也不能存储超过 4000 BYTES。如果都是单字节则存储4000个字符,否则存储少于4000个字符。

=> varchar2 数据类型与 varchar 数据类型相同。 => 它的数据类型具有可变长度。 前任。 "name varchar2(20)" 并传递 name 的值是 "Ram" 所以,LENGTH(name) 是 3 NOT 20。 => 其内部数据类型仅由 Oracle 服务器管理。 => 即使您声明 varchar oracle 隐式转换为 varchar2