数据类型 (PL/SQL)

支持多种数据类型,且可用于在 PL/SQL 块中声明变量。

表 1. PL/SQL 中的受支持标量数据类型
PL/SQL 数据类型 SQL 数据类型 描述
BINARY_INTEGER INTEGER 整型数字数据
BLOB BLOB(4096) 二进制数据
BLOB (n)
BLOB (n)
n = 1 到 2147483647
二进制大对象数据
BOOLEAN BOOLEAN 逻辑布尔值(true 或 false)
CHAR CHAR (n)
如果环境的字符串单元设置为 CODEUNITS32,那么 n = 63
否则,n = 255
长度为 n 的定长字符串数据
CHAR (n)
CHAR (n)
n = 1 到 255
长度为 n 的定长字符串数据
CHAR (n CHAR)
CHAR (n CODEUNITS32 )
n = 1 到 63
长度为 n 个 UTF-32 代码单元的定长字符串数据1
CHAR VARYING (n) VARCHAR (n) 最大长度为 n 的可变长度字符串数据
CHAR VARYING (n CHAR)
VARCHAR (n CODEUNITS32 )
n  = 1 到 8 168
最大长度为 n 个 UTF-32 代码单元的可变长度字符串数据 1
CHARACTER CHARACTER (n)
如果环境的字符串单元设置为 CODEUNITS32,那么 n = 63
否则,n = 255
长度为 n 的定长字符串数据
CHARACTER (n)
CHARACTER (n)
n = 1 到 255
长度为 n 的定长字符串数据
CHARACTER (n CHAR) CHARACTER (n CODEUNITS32 )
n = 1 到 63
长度为 n 个 UTF-32 代码单元的定长字符串数据1
CHARACTER VARYING (n)
VARCHAR (n)
n = 1 到 32672
最大长度为 n 的可变长度字符串数据
CHARACTER VARYING (n CHAR)
VARCHAR (n CODEUNITS32 )
n  = 1 到 8 168
最大长度为 n 个 UTF-32 代码单元的可变长度字符串数据 1
CLOB CLOB (1M) 字符大对象数据
CLOB (n)
CLOB (n)
n = 1 到 2147483647
长度为 n 的字符大对象数据
CLOB (n CHAR)
CLOB (n CODEUNITS32 )
n = 1 到 536 870 911
长度为 n 个 UTF-32 代码单元的字符大对象字符串数据1
DATE DATE 2 日期和时间数据(精度为秒)
DEC DEC (9, 2) 十进制数字数据
DEC (p)
DEC (p)
p = 1 到 31
精度为 p 的十进制数字数据
DEC (p, s)
DEC (p, s)
p = 1 到 31;s = 1 到 31
精度为 p 并且小数位数为 s 的十进制数字数据
DECIMAL DECIMAL (9, 2) 十进制数字数据
DECIMAL (p)
DECIMAL (p)
p = 1 到 31
精度为 p 的十进制数字数据
DECIMAL (p, s)
DECIMAL (p, s)
p = 1 到 31;s = 1 到 31
精度为 p 并且小数位数为 s 的十进制数字数据
DOUBLE DOUBLE 双精度浮点数
DOUBLE PRECISION DOUBLE PRECISION 双精度浮点数
FLOAT FLOAT 浮点数字数据
FLOAT (n)
n = 1 到 24
REAL 实数数字数据
FLOAT (n)
n = 25 到 53
DOUBLE 双精度数字数据
INT INT 带符号 4 字节整型数字数据
INTEGER INTEGER 带符号 4 字节整型数字数据
LONG CLOB (32760) 字符大对象数据
LONG RAW BLOB (32760) 二进制大对象数据
LONG VARCHAR CLOB (32760) 字符大对象数据
NATURAL INTEGER 带符号 4 字节整型数字数据
NCHAR NCHAR (n) 3
如果 NCHAR_MAPPING 配置参数设置为 GRAPHIC_CU32 或 CHAR_CU32,那么 n = 63
n = 127,否则
长度为 n 的固定长度本地语言字符串数据
NCHAR (n)
n = 1 到 2000
NCHAR (n) 3 长度为 n 的固定长度本地语言字符串数据
NCLOB 4 NCLOB(1M) 3 National 字符大对象数据
NCLOB (n) NCLOB (n) 3 最大长度为 n 的本地语言字符大对象数据
NVARCHAR2 NVARCHAR 3 可变长度 National 字符串数据
NVARCHAR2 (n) 9NVARCHAR (n) 3 最大长度为 n 的可变长度本地语言字符串数据
NUMBER NUMBER 5 精确数字数据
NUMBER (p) NUMBER (p) 5 最大精度为 p 的精确数字数据
NUMBER (p, s)
NUMBER (p, s) 5
p = 1 到 31;s = 1 到 31
最大精度为 p 并且小数位数为 s 的精确数字数据
NUMERIC NUMERIC (9.2) 精确数字数据
NUMERIC (p)
NUMERIC (p)
p = 1 到 31
最大精度为 p 的精确数字数据
NUMERIC (p, s)
NUMERIC (p, s)
p = 1 到 31; s = 0 到 31
最大精度为 p 并且小数位数为 s 的精确数字数据
PLS_INTEGER INTEGER 整型数字数据
RAW VARBINARY(32672) 可变长度二进制字符串数据
RAW (n)

VARBINARY(n)
n = 1 到 32672
可变长度二进制字符串数据
SMALLINT SMALLINT 带符号 2 字节整型数据
TIMESTAMP (0) TIMESTAMP (0) 包含时间戳记信息的日期数据
TIMESTAMP (p) TIMESTAMP (p) 包含可选的小数秒和精度 p 的日期和时间数据
VARCHAR VARCHAR (4096) 最大长度为 4096 的可变长度字符串数据
VARCHAR (n) VARCHAR (n) 最大长度为 n 的可变长度字符串数据
VARCHAR (n CHAR)
VARCHAR (n CODEUNITS32 )
n  = 1 到 8 168
最大长度为 n 个 UTF-32 代码单元的可变长度字符串数据 1
VARCHAR2 (n) VARCHAR2 (n) 6 最大长度为 n 的可变长度字符串数据
VARCHAR2 (n CHAR)
VARCHAR2 (n CODEUNITS32 )
n = 1 到 8 168 6
最大长度为 n 个 UTF-32 代码单元的可变长度字符串数据 1
  1. 如果环境的字符串单元设置为 CODEUNITS32,那么长度的 CHAR 属性为隐式。此行为类似于 Oracle 数据库中的 NLS_LENGTH_SEMANTICS=CHAR。
  2. National 字符串是带有 NCHAR_MAPPING 配置参数确定的数据类型映射的字符串或图形字符串的同义词。请参阅“本地语言字符串”以了解详细信息。
  3. 要了解特定数据库环境中有关 NCLOB 数据类型的限制,请参阅“PL/SQL 支持方面的限制”。
  4. number_compat 数据库配置参数设置为 ON 时,支持此数据类型。
  5. varchar2_compat 数据库配置参数设置为 ON 时,支持此数据类型。
表 1 中描述的标量数据类型以外, 数据服务器还支持集合类型、记录类型和 REF CURSOR 类型。