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

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

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

1、数值类型

序号 类型名称 说明
1 PLS_INTEGER 带符号整数:-2,147,483,6482,147,483,647,以32位表示
2 BINARY_INTEGER 带符号整数:-2,147,483,6482,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 -47129999(不包括第0年) 任意非零整数
2 MONTH 01 ~ 12 01 ~ 11
3 DAY 0131(限于MONTHYEAR的值,根据本地日历的规则) 任何非零整数
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 用于在数据库中存储的大型二进制对象 8TB128TB
3 CLOB 用于在数据库中存储大字符数据 8TB128TB
4 NCLOB 用于在数据库中存储大块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; 
/


相关文章
|
12天前
|
SQL Oracle 安全
Oracle的PL/SQL游标异常处理:从“惊涛骇浪”到“风平浪静”
【4月更文挑战第19天】Oracle PL/SQL游标异常处理确保了在数据操作中遇到的问题得以优雅解决,如`NO_DATA_FOUND`或`TOO_MANY_ROWS`等异常。通过使用`EXCEPTION`块捕获并处理这些异常,开发者可以防止程序因游标问题而崩溃。例如,当查询无结果时,可以显示定制的错误信息而不是让程序终止。掌握游标异常处理是成为娴熟的Oracle数据管理员的关键,能保证在复杂的数据环境中稳健运行。
|
12天前
|
SQL Oracle 安全
Oracle的PL/SQL异常处理方法:守护数据之旅的“魔法盾”
【4月更文挑战第19天】Oracle PL/SQL的异常处理机制是保障数据安全的关键。通过预定义异常(如`NO_DATA_FOUND`)和自定义异常,开发者能优雅地管理错误。异常在子程序中抛出后会向上传播,直到被捕获,提供了一种集中处理错误的方式。理解和善用异常处理,如同手持“魔法盾”,确保程序在面对如除数为零、违反约束等挑战时,能有效保护数据的完整性和程序的稳定性。
|
12天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL中FOR语句循环游标的奇幻之旅
【4月更文挑战第19天】在Oracle PL/SQL中,FOR语句与游标结合,提供了一种简化数据遍历的高效方法。传统游标处理涉及多个步骤,而FOR循环游标自动处理细节,使代码更简洁、易读。通过示例展示了如何使用FOR循环游标遍历员工表并打印姓名和薪资,对比传统方式,FOR语句不仅简化代码,还因内部优化提升了执行效率。推荐开发者利用这一功能提高工作效率。
|
12天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
12天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
12天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。
|
12天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。
|
SQL Oracle 关系型数据库
Oracle SQL优化之多表连接
Oracle SQL优化之多表连接
433 0
Oracle SQL优化之多表连接
|
SQL 关系型数据库 Oracle
ORACLE SQL优化之ORA-03150&ORA-02055&ORA-02063
                                                                                                             >   
4768 0
|
SQL 存储 Oracle
Oracle SQL语句优化方法总结
  1、SQL语句尽量用大写的   因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。   2、使用表的别名   当在SQL语句中连接多个表时, 尽量使用表的别名并把别名前缀于每个列上。这样一来,   就可以减少解析的时间并减少那些由列歧义引起的语法错误。   3、选择最有效率的表名顺序(只在基于规则的优化器(RBO)中有效)
167 0

推荐镜像

更多