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

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

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

1、数值类型

序号 类型名称 说明
1 PLS_INTEGER 带符号整数:-2,147,483,648至2,147,483,647,以32位表示
2 BINARY_INTEGER 带符号整数:-2,147,483,648至2,147,483,647,以32位表示
3 BINARY_FLOAT 单精度IEEE 754格式浮点数
4 BINARY_DOUBLE 双精度IEEE 754格式浮点数NUMBER
5 NUMBER(prec, scale) 在1E-130到(但不包括)1.0E126范围内的绝对值的定点或浮点数。NUMBER变量也可以表示0
6 DEC(prec, scale) ANSI特定定点类型,最大精度为38位十进制数字
7 DECIMAL(prec, scale) IBM具体定点类型,最大精度为38位十进制数字
8 NUMERIC(pre, secale) 浮点型,最大精度为38位十进制数
9 DOUBLE PRECISION ANSI特定浮点类型,最大精度为126位二进制数字(大约38位十进制数字)
10 FLOAT ANSI和IBM特定浮点类型,最大精度为126位二进制数字(大约38位十进制数字)
11 INT ANSI特定整数类型,最大精度为38位十进制数
12 INTEGER ANSI和IBM特定整数类型,最大精度为38位十进制数
13 SMALLINT ANSI和IBM特定整数类型,最大精度为38位十进制数
14 REAL 浮点型,最大精度为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类型的数据值包括世纪,年,月,日,时,分,秒。下表显示每个字段的有效值 :

序号 字段名 有效值 有效间隔值
1 YEAR -4712至9999(不包括第0年) 任意非零整数
2 MONTH 01 ~ 12 01 ~ 11
3 DAY 01至31(限于MONTH和YEAR的值,根据本地日历的规则) 任何非零整数
4 HOUR 00 ~ 23 00 ~ 23
5 MINUTE 00 ~ 59 00 ~ 59
6 SECOND 00 ~ 59.9(n),其中9(n)是时间分秒的精度 00 ~ 59.9(n),其中9(n)是时间分秒的精度

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

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

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

6、用户定义的子类型

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

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

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; 
/


相关文章
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
834 8
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
898 6
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
SQL Oracle 关系型数据库
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
1127 13
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
872 9
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
520 6
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
1652 3

推荐镜像

更多