数据类型 (PL/SQL)

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

表 1. PL/SQL 中的受支持标量数据类型
PL/SQL 数据类型 Db2® SQL 数据类型 描述
BINARY_INTEGER INTEGER 整型数字数据
BLOB BLOB(4096) 二进制数据
BLOB (n)
BLOB (n)
n = 1 到 2 147 483 647
二进制大对象数据
布尔值 布尔值 逻辑布尔值(true 或 false)
CHAR CHAR (n)
n = 63 (如果环境的字符串单元设置为 CODEUNITS32
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)
n = 63 如果环境的字符串单元设置为 CODEUNITS32
n = 255 ,否则
长度为 n 的固定长度字符串数据
CHARACTER (n)
CHARACTER (n)
n = 1 到 255
长度为 n 的固定长度字符串数据
CHARACTER (n CHAR) CHARACTER (n CODEUNITS32 )
n = 1 到 63
长度为 n UTF-32 代码单元的固定长度字符串数据1
字符变化 (n)
VARCHAR (n)
n = 1 到 32 672
最大长度为 n 的可变长度字符串数据
字符变化 (n CHAR)
VARCHAR (n CODEUNITS32 )
n = 1 到 8 168
最大长度的可变长度字符串数据 n UTF-32 代码单元1
CLOB CLOB (1M) 字符大对象数据
CLOB (n)
CLOB (n)
n = 1 到 2 147 483 647
长度为 n的字符大对象数据
CLOB (n CHAR)
CLOB (n CODEUNITS32 )
n = 1 到 536 870 911
长度为 n UTF-32 代码单元的字符大对象字符串数据1
日期 DATE 2 日期和时间数据(精度为秒)
DEC DEC (9, 2) 十进制数字数据
DEC (p)
DEC (p)
p = 1 到 31
精度为 p 的十进制数字数据
DEC (ps)
DEC (ps)
p = 1 到 31; s = 1 到 31
精度为 p 并且小数位数为 s 的十进制数字数据
DECIMAL DECIMAL (9, 2) 十进制数字数据
DECIMAL (p)
DECIMAL (p)
p = 1 到 31
精度为 p 的十进制数字数据
DECIMAL (ps)
DECIMAL (ps)
p = 1 到 31; s = 1 到 31
精度为 p 并且小数位数为 s 的十进制数字数据
双精度浮点数
DOUBLE PRECISION DOUBLE PRECISION 双精度浮点数
FLOAT FLOAT 浮点数字数据
FLOAT (n)
n = 1 到 24
REAL 实数数字数据
FLOAT (n)
n = 25 到 53
双精度数字数据
INT INT 带符号 4 字节整型数字数据
INTEGER INTEGER 带符号 4 字节整型数字数据
LONG CLOB (32760) 字符大对象数据
LONG RAW BLOB (32760) 二进制大对象数据
LONG VARCHAR CLOB (32760) 字符大对象数据
NATURAL INTEGER 带符号 4 字节整型数字数据
NCHAR NCHAR (n) 3
n = 63(如果 NCHAR_MAPPING 配置参数设置为 GRAPHIC_CU32 或 CHAR_CU32
);否则,n = 127
长度为 n的固定长度国家字符串数据
NCHAR (n)
n = 1 到 2000
NCHAR (n) 3 长度为 n的固定长度国家字符串数据
NCLOB 4 NCLOB (1M) 3 国家字符大对象数据
NCLOB (n) NCLOB (n) 3 最大长度为 n的国家字符大对象数据
NVARCHAR2 NVARCHAR 3 可变长度的本地字符串数据
NVARCHAR2 (n) NVARCHAR (n) 3 最大长度为 n的可变长度国家字符串数据
NUMBER NUMBER 5 精确数字数据
NUMBER (p) NUMBER (p) 5 最大精度为 p 的精确数字数据
NUMBER (ps)
NUMBER (ps) 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 (ps)
p = 1 到 31; s = 0 到 31
最大精度为 p 并且小数位数为 s 的精确数字数据
PLS_INTEGER INTEGER 整型数字数据
RAW VARBINARY(32672) 可变长度二进制字符串数据
RAW (n)
VARBINARY (n)
n = 1 到 32 672
可变长度二进制字符串数据
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. 如果为 DATE 数据类型设置了 DB2_COMPATIBILITY_VECTOR 注册表变量,那么 DATE 等同于 TIMESTAMP (0)。
  3. 本地语言字符串是带有 NCHAR_MAPPING 配置参数确定的数据类型映射的字符串或图形字符串的同义词。 请参阅“National 字符串”以了解详细信息。
  4. 有关特定数据库环境中的 NCLOB 数据类型的限制,请参阅对 PL/SQL 支持的限制
  5. number_compat 数据库配置参数设置为 ON 时,支持此数据类型。
  6. varchar2_compat 数据库配置参数设置为 ON 时,支持此数据类型。
除了 表 1中描述的标量数据类型外, Db2 数据服务器还支持集合类型,记录类型和 REF CURSOR 类型。