数据类型 (PL/SQL)

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

表 1. PL/SQL 中的受支持标量数据类型
PL/SQL 数据类型 Db2® SQL数据类型 描述
BINARY_INTEGER INTEGER 整型数字数据
BLOB BLOB(4096) 二进制数据
BLOB( 名词
BLOB( 名词
n = 1 至 2 147 483 647
二进制大对象数据
布尔值 布尔值 逻辑布尔值(true 或 false)
CHAR CHAR ( n )
n = 63,若环境的字符串单位设置为
CO DEUNITS32n = 255,否则
长度为 n 的固定长度字符串数据
CHAR( 名词
CHAR ( n )
n = 1 至 255
长度为 n 的固定长度字符串数据
CHAR( n CHAR)
CHAR( nCODEUNITS32 )
n = 1 至 63
长度为n 的固定长度字符串数据 UTF-32代码单元
变量( 名词 VARCHAR( n ) 最大长度为 n 的可变长度字符串数据
CHAR VARYING ( n CHAR)
VARCHAR( nCODEUNITS32 )
n = 1 至 8 168
可变长度字符串数据,最大长度为n个 UTF-32 编码单元
CHARACTER 字符( 名词
n = 63(若环境的字符串单位设置
为CODEUNITS32)n = 255(否则)
长度为 n 的固定长度字符串数据
角色( 名词
字符( 名词
n = 1 至 255
长度为 n 的固定长度字符串数据
字符( n CHAR) 字符( 名词 CODEUNITS32 )
n = 1 至 63
长度为n 的固定长度字符串数据 UTF-32代码单元
字符变化( 名词
VARCHAR ( n )
n = 1 至 32 672
最大长度为 n 的可变长度字符串数据
字符变量( n CHAR)
VARCHAR( nCODEUNITS32 )
n = 1 至 8 168
可变长度字符串数据,最大长度为n个UTF-32 编码单元
CLOB CLOB (1M) 字符大对象数据
CLOB( 名词
CLOB( 名词
n = 1 至 2 147 483 647
字符大对象数据,长度为 n
CLOB( n CHAR)
CLOB( nCODEUNITS32 )
n = 1 至 536 870 911
字符大对象字符串数据,长度为nUTF-32代码单元
日期 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) 十进制数字数据
十进制 ( p )
十进制 ( p )
p = 1 至 31
精度为 p 的十进制数字数据
十进制数 ( p, s )
十进制 ( p, s )
p = 1 至 31; s = 1 至 31
精度为 p 并且小数位数为 s 的十进制数字数据
双精度浮点数
DOUBLE PRECISION DOUBLE PRECISION 双精度浮点数
FLOAT FLOAT 浮点数字数据
浮动 ( 名词 )
n = 1 至 24
REAL 实数数字数据
浮动 ( 名词 )
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( 名词 NCLOB ( 名词 ) 3 国家特征大对象数据的最大长度为n
NVARCHAR2 NVARCHAR 3 可变长度的国家字符串数据
NVARCHAR2 ( n ) NVARCHAR( n ) 3 可变长度的国家字符串数据,最大长度为n
NUMBER 第五 精确数字数据
数字 ( p ) 编号 ( p ) 5 最大精度为 p 的精确数字数据
NUMBER( p, s )
NUMBER ( p, s ) 5
p = 1 至 31; s = 1 至 31
最大精度为 p 并且小数位数为 s 的精确数字数据
NUMERIC NUMERIC (9.2) 精确数字数据
数字 ( p )
数字 ( 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( 名词
VARBINARY( n )
n = 1 至 32 672
可变长度二进制字符串数据
SMALLINT SMALLINT 带符号 2 字节整型数据
TIMESTAMP (0) TIMESTAMP (0) 包含时间戳记信息的日期数据
时间戳 ( p ) 时间戳 ( p ) 包含可选的小数秒和精度 p 的日期和时间数据
VARCHAR VARCHAR (4096) 最大长度为 4096 的可变长度字符串数据
VARCHAR( n ) VARCHAR( n ) 最大长度为 n 的可变长度字符串数据
VARCHAR( n CHAR)
VARCHAR( nCODEUNITS32 )
n = 1 至 8 168
可变长度字符串数据,最大长度为n个UTF-32 编码单元
VARCHAR2 ( n ) VARCHAR2 ( n ) 6 最大长度为 n 的可变长度字符串数据
VARCHAR2 ( n 字符)
VARCHAR2 ( n CODEUNITS32 )
n = 1 至 8 168 6
可变长度字符串数据,最大长度为n个UTF-32 编码单元
  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类型。