Oracle PL/SQL 第四章--数据类型

Oracle PL/SQL 第四章–数据类型

1、数值类型

序号类型名称说明
1PLS_INTEGER带符号整数:-2,147,483,6482,147,483,647,以32位表示
2BINARY_INTEGER带符号整数:-2,147,483,6482,147,483,647,以32位表示
3BINARY_FLOAT单精度IEEE 754格式浮点数
4BINARY_DOUBLE双精度IEEE 754格式浮点数NUMBER
5NUMBER(prec, scale)1E-130到(但不包括)1.0E126范围内的绝对值的定点或浮点数。NUMBER变量也可以表示0
6DEC(prec, scale)ANSI特定定点类型,最大精度为38位十进制数字
7DECIMAL(prec, scale)IBM具体定点类型,最大精度为38位十进制数字
8NUMERIC(pre, secale)浮点型,最大精度为38位十进制数
9DOUBLE PRECISIONANSI特定浮点类型,最大精度为126位二进制数字(大约38位十进制数字)
10FLOATANSI和IBM特定浮点类型,最大精度为126位二进制数字(大约38位十进制数字)
11INTANSI特定整数类型,最大精度为38位十进制数
12INTEGERANSI和IBM特定整数类型,最大精度为38位十进制数
13SMALLINTANSI和IBM特定整数类型,最大精度为38位十进制数
14REAL浮点型,最大精度为63位二进制数字(约十八位数)

以下的声明方式有效

DECLARE 
	number1 INTEGER; 
	number2 REAL; 
	number3 DOUBLE PRECISION; 
BEGIN 
	null; 
END;

2、字符类型

序号类型名称说明
1 CHAR 固定长度字符串,最大大小为32767字节
2 VARCHAR2最大大小为32767字节的可变长度字符串
3 NCHAR固定长度的国家字符串,最大大小为32767字节
4 NVARCHAR2可变长度的国家字符串,最大大小为32767字节
5 LONG最大长度为32760字节的可变长度字符串
5 ROWID物理行标识符,普通表中的行的地址

3、布尔数据类型

BOOLEAN数据类型存储逻辑运算中使用的逻辑值。逻辑值为布尔值:TRUE,FALSE以及NULL值。

但是,SQL没有类似于BOOLEAN的数据类型。 因此,布尔值不能用于

  • SQL语句
  • 内置SQL函数(如:TO_CHAR)
  • 从SQL语句调用PL/SQL函数

4、日期类型

DATE数据类型用于存储固定长度的数据日期时间,其包括自午夜以来以秒为单位的时间。 有效期为公元前4712年1月1日至公元9999年12月31日。

每个DATE类型的数据值包括世纪,年,月,日,时,分,秒。下表显示每个字段的有效值 :

序号字段名有效值有效间隔值
1YEAR-47129999(不包括第0年)任意非零整数
2MONTH01 ~ 1201 ~ 11
3DAY0131(限于MONTHYEAR的值,根据本地日历的规则)任何非零整数
4HOUR00 ~ 2300 ~ 23
5MINUTE00 ~ 5900 ~ 59
6SECOND00 ~ 59.9(n),其中9(n)是时间分秒的精度00 ~ 59.9(n),其中9(n)是时间分秒的精度

5、大对象(LOB)数据类型

大对象(LOB)数据类型指的是大数据项,如文本,图形图像,视频剪辑和声音波形。 LOB数据类型允许对数据进行高效,随机,分段访问。以下是预定义的PL/SQL LOB数据类型

序号数据类型描述大小
1BFILE用于在数据库外的操作系统文件中存储大型二进制对象取决于系统,但不得超过4GB
2BLOB用于在数据库中存储的大型二进制对象8TB128TB
3CLOB用于在数据库中存储大字符数据8TB128TB
4NCLOB用于在数据库中存储大块NCHAR数据8TB128TB

6、用户定义的子类型

子类型是另一种数据类型的子集,它称为基本类型。子类型具有与其基本类型相同的操作,但只有基本类型有效值的子集。

PL/SQL预定义包STANDARD中的几个子类型。 例如,PL/SQL预先定义子类型CHARACTERINTEGER,如下所示:

SUBTYPE CHARACTER IS CHAR; 
SUBTYPE INTEGER IS NUMBER(38,0);

可以定义和使用自己的子类型。以下程序说明了如何定义和使用用户定义的子类型

DECLARE 
   SUBTYPE name IS char(20); 
   SUBTYPE message IS varchar2(100); 
   salutation name; 
   greetings message; 
BEGIN 
   salutation := 'Reader '; 
   greetings := 'Welcome to the World of PL/SQL'; 
   dbms_output.put_line('Hello ' || salutation || greetings); 
END; 
/
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天界程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值