Pl/SQL+程序块结构+标量变量+into+%type+%rowtype+复合类型的变量

程序块结构
declare:定义变量,常量,游标
exception:引领程序块异常处理部分
begin/end:标准程序块可执行部分

案例
set serveroutput on 设置在控制台输出

seo8L3N0cm9uZz48YnIgLz4NCrHkwb+2qNLluea3tqO6PGJyIC8+DQoxLrHkwb/D+9LU19bEuL+qzbc8YnIgLz4NCjIub3JhY2xlserKtrf7srvH+LfWtPPQodC0PGJyIC8+DQozLrHkwb/D+7Oktsiyu8Tcs6y5/TMwuPbX1rf7PGJyIC8+DQo0LrHqyra3+7K7xNy6rLz1usUmcmRxdW87LSZsZHF1bzu6zb/VuPE8YnIgLz4NCjUusrvE3MrHc3Fsudi8/NfWPC9wPg0KPHA+s6PBv7ao0uWjujxiciAvPg0KyfnD97Ojwb/Q6NKqudi8/NfWY29uc3RhbnQ8YnIgLz4NCrao0uWzo8G/sdjQ67iz1rWjuzxiciAvPg0KyOejujxiciAvPg0KUEkgY29uc3RhbnQgbnVtYmVyKDkpIDo9My4xNDwvcD4NCjxwPrTtzvO1xNC0t6g8YnIgLz4NCjxpbWcgYWx0PQ==”这里写图片描述” src=”http://img.2cto.com/Collfiles/20170426/2017042609110656.png” title=”\” />
正确的写法

注意:
:=是赋值操作符
关键字default 可以替换:=

标量变量:存储单独一个值
数据类型:字符,数字,日期,布尔等
数字类型:number,pls_integer,binary_integer
pls_integer,binary_integer,boolean 类型 不能再创建表的时候使用
pls_integer:有符号整数,范围-2^31-2^31

into:将查询的结果保存在变量中

解释:
select count(*) into out from student;
将查询的结果 赋值给变量out

%type
用户事先不知道检索列的数据类型,可以使用%type定义变量

sno student.sno%type ;
解释:定义变量sno 类型与表student.sno相同

%rowtype:一次存储一行数据

结合上面2个图,可以将%rowtype定义的变量s看做是java中的一个对象,保存类student的数据,第二图错误的原因就是2个对象数据存入一个对象中,所以爆值过多。

复合类型的变量存储多个值,类似于数组
记录类型:
存储多个标量值,结构与行相似。类似于%rowtype,可以将它看做是定义一个java类
语法
type 记录变量名 is record(
fileName1 dateType [not null] [:=值],
fileName2 dateType [not null] [:=值],
fileName3 dateType [not null] [:=值],
….
);

记录表类型:类似一个数组
允许用户在代码中使用表,方便存储多行数据
语法
type tableName is table of dateType[not null] index by binary_integer;
tableName:记录表类型名
table :记录表类型关键字
dateType:记入表存储数据的类型
binary_integer:计入表类型的长度

举例:

记录表类型存储方式
类似于数组

记录表类型的几种方法:
count:返回记录表的纪录的数量
delete:删除记录表的纪录
first:返回记录表最小索引值
last:返回记录表最大索引值
next:返回记录表下一个索引值,使用该方法前,需要传递一个索引值

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐