专业的编程技术博客社区

网站首页 > 博客文章 正文

重拾PL/SQL语句块(二)——变量的声明及数据类型的介绍

baijin 2024-08-12 13:55:28 博客文章 16 ℃ 0 评论

重拾PL/SQL语句块(二)——变量的声明及数据类型的介绍

上篇文章讲了PL/SQL语言的一些介绍以及第一个程序,这篇讲的是PL/SQL语言中的变量的声明以及数据类型的介绍。

一、变量的声明

我们先在数据库中创建一个用户表并插入一些数据,如下:

创建用户表并插入4条数据

测试变量声明代码如下:

变量的声明测试

变量的声明都是在DECLARE部分完成的,赋值在DECLARE、BEGIN均可以。变量声明和表创建中字段的声明类似,都是:【变量名 [CONSTANT] 类型 [:=值];】格式的。其中[]的内容是可选的,COSTANT表示常量。变量的赋值可以用【:=】或者通过查询sql语句获得结果然后通过【into】赋给变量(注意查询sql语句所得结果必须只有一条,否则会报ORA-01422: 实际返回的行数超出请求的行数异常,在EXCEPTION中捕捉输出)。

程序的运行结果如下:

结果图

二、数据类型

在上面案列中,我们用到了varchar2、Integer、Numeric其实就是数据类型。还有很多其他类型,我们列举如下,就不一一写程序测试了,有兴趣的可以自己写程序测试验证。

【1】、标量类型:

【a】字符:VARCHAR2;CHAR

【b】日期:DATE

【c】时间:TIMESTAMP

【d】布尔:BOOLEAN (它的值有TRUE / FALSE/ NULL,注意boolean值跟表没有交互,故不能用于运算及结果打印)

【e】数字:

1、BINARY_INTEGER 范围是从-231--231的整数,如果将浮点数赋值给该类型,浮点数将四舍五入成整数再赋值给该类型。另外该类型还有下列几个子类型:a、NATURAL 0-231范围的整数 b、POSITIVE   1-231范围的整数 c、NATURALN   不允许NULL值,其它同NATURAL d、POSITIVEN  不允许NULL值,其它同POSITIVE e、SIGNTYPE   符号类型,只允许三个值-1 0 1三个值(注意:BINARY_INTEGER及其子类型是PL/SQL数据类型,而非SQL数据类型,也就是说,在创建表时不能使用。)

2、NUMBER  表示固定长度的数字或者浮点数,范围从1E-130--10E125,NUMBER(p,s),其中p范围是1至38,s范围是-84至127。p和s都只能是数字,不能是常量或者变量。

FLOAT  32位的浮点数,7位小数位

REAL   64位的浮点数,15位小数位

INTEGER 可以声明最大精度为38位十进制数字的整数

decimal[ (p[ , s] )] and numeric[ (p[ , s] )] 固定有效位数和小数位数的数字。当使用最大有效位数时,有效值是从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义字是 dec 和 dec(p, s)。numeric 的功能相当于 decimal。

3、PLS_INTEGER 范围是从-231--231的整数,虽然PLS_INTEGER与BINARY_INTEGER范围一致,但是它们不完全相同。 如果PLS_INTEGER计算时数据溢出,它会抛出异常。而BINARY_INTEGER会自动转换成NUMBER类型,另外PLS_INTEGER的速度要比BINARY_INTEGER快

【2】LOB类型: BLOB 二进制字段 、CLOB 字符字段 、FLOB 文件字段

【3】属性类型: %TYPE --跟表中某个字段一样的类型、%ROWTYPE -- 某个表里面的一条记录的所有字段

三、举例测试属性类型

代码如下图所示:

测试属性类型

可以看出变量tst_name的类型是tst_user表中ur_name字段类型,而user1的类型是tst_user表的一行记录。运行结果如下:

属性类型结果图


好了,关于变量的声明以及数据类型就介绍到这里,再见!

【下期预告:PLSQL中的运算符以及控制语句】

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表