重拾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中的运算符以及控制语句】
本文暂时没有评论,来添加一个吧(●'◡'●)