PL/SQL - 数据类型

PL/SQL - 数据类型 首页 / PL/SQL入门教程 / PL/SQL - 数据类型

在本章中,无涯教程将讨论PL/SQL中的数据类型。PL/SQL变量,常量和参数必须具有有效的数据类型,该数据类型指定存储格式,约束和值的有效范围,在本章中,无涯教程将重点介绍 SCALAR 和 LOB 数据类型。其他两种数据类型将在其他章节中介绍。

S.NoCategory & 描述
1

Scalar

没有内部组成部分的单个值,如 NUMBER,DATE,或 BOOLEAN 。

2

Large Object(LOB)

指向与其他数据项(如,文本,图形图像)分开存储的大对象的指针。

3

Composite

具有内部组件的数据项可以单独访问,如,收集和记录。

链接:https://www.learnfk.comhttps://www.learnfk.com/plsql/plsql-data-types.html

来源:LearnFk无涯教程网

4

Reference

指向其他数据项的指针。

PL/SQL标量类型

S.NoDate Type & 描述
1

Numeric

在其上执行算术运算的数值。

2

Character

代表单个字符或字符串的字母数字值。

3

Boolean

在其上执行逻辑操作的逻辑值。

4

Datetime

无涯教程网

日期和时间。

PL/SQL提供数据类型的子类型,数据类型NUMBER的子类型为INTEGER,您可以在PL/SQL程序中使用子类型,以使数据类型与其他程序中的数据类型兼容,同时将PL/SQL代码嵌入到其他程序(如Java程序)中。

PL/SQL数值类型

下表列出了PL/SQL预定义数字数据类型及其子类型-

S.NoData Type & 描述
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格式的浮点数

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个二进制数字(约18个十进制数字)

以下是有效的声明-

DECLARE 
   num1 INTEGER; 
   num2 REAL; 
   num3 DOUBLE PRECISION; 
BEGIN 
   null; 
END; 
/

编译并执行上述代码后,将产生以下输出-

PL/SQL procedure successfully completed 

PL/SQL字符类型

以下是PL/SQL预定义字符数据类型及其子类型的详细信息-

S.NoData Type & 描述
1

CHAR

固定长度的字符串,最大大小为32,767字节

2

VARCHAR2

可变长度字符串,最大大小为32,767字节

3

RAW

可变长度的二进制或字节字符串,最大大小为32,767个字节,PL/SQL无法解释

4

NCHAR

固定长度的国家字符串,最大长度为32,767字节

5

NVARCHAR2

可变长度的国家字符串,最大大小为32,767字节

6

LONG

可变长度字符串,最大大小为32,760字节

7

LONG RAW

可变长度的二进制或字节字符串,最大长度为32,760字节,PL/SQL无法解释

8

ROWID

物理行标识符,普通表中的行地址

9

UROWID

通用行标识符(物理,逻辑或外部行标识符)

PL/SQL布尔类型

BOOLEAN 数据类型存储逻辑操作中使用的逻辑值,逻辑值是布尔值 TRUE 和 FALSE 和值 NULL 。

但是,SQL没有与BOOLEAN等效的数据类型,因此,布尔值不能用于-

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

PL/SQL日期类型

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

每个DATE包括世纪,年,月,日,小时,分钟和秒,下表显示了每个字段的有效值-

字段名称有效的日期时间值有效间隔值
YEAR -4712至9999(不包括0年)任何非零整数
MONTH 01至12 0到11
DAY 01到31(根据地区日历的规则,由MONTH和YEAR的值限制)任何非零整数
HOUR 00至23 0到23
MINUTE 00至59 0到59
SECOND 00到59.9(n),其中9(n)是时间分数秒的精度 0到59.9(n),其中9(n)是间隔小数秒的精度
TIMEZONE_HOUR -12至14(该范围可适应夏令时更改)不适用
TIMEZONE_MINUTE 00至59不适用

PL/SQL大对象类型

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

数据类型说明大小
BFILE用于将大型二进制对象存储在数据库外部的操作系统文件中。取决于系统。不能超过4 GB。
BLOB用于在数据库中存储大型二进制对象。 8至128 TB(TB)
CLOB用于在数据库中存储大块字符数据。 8到128 TB
NCLOB用于在数据库中存储大块NCHAR数据。 8到128 TB

PL/SQL自定义类型

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

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提示符下执行时,将产生以下输出-

Hello Reader Welcome to the World of PL/SQL 
 
PL/SQL procedure successfully completed. 

PL/SQL NULL值

PL/SQL NULL值表示丢失或未知数据,它们不是整数,字符或任何其他特定的数据类型,请注意, NULL 与空数据字符串或空字符值'\0'不同。可以分配空值,但不能将其等同于任何事物,包括自身。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

软件测试52讲 -〔茹炳晟〕

深入浅出计算机组成原理 -〔徐文浩〕

深入浅出云计算 -〔何恺铎〕

小马哥讲Spring AOP编程思想 -〔小马哥〕

说透芯片 -〔邵巍〕

Redis源码剖析与实战 -〔蒋德钧〕

深入浅出分布式技术原理 -〔陈现麟〕

结构沟通力 -〔李忠秋〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)