pl/sql编程

pl/sql

pl(procedure language)/sql是oracle在数据库中引入的一种过程化的编程语言。
它是对sql的补充:具有为程序开发而设计的特性;
在pl/sql中可以使用变量,进行流程控制,来实现比较复杂的业务逻辑;


程序结构

declare
    [变量声明]
begin
    [语句序列]
exception
    [异常处理程序]
end;
/

特殊类型的变量

1.[字段名]%type 类型
声明一个与指定表的指定列的相同类型的变量,用于存放一个字段的值。
2.[表名]%rowtype 类型
声明一个与指定表的行结构相同的变量,用于存放一条记录
3.cursor类型(游标类型)
声明一个表对象类型的变量,用于存放一个查询结果集


注意:
在pl/sql程序中,select语句返回的数据是一行时,select语句总是和into相配合,into后跟用于接受查询结果的变量,形式:
select 列名1,列名2.....
into 变量1,变量2.....
from 表名 where 条件;

当程序要接受返回的多行结果时,可以采用游标变量来存放


栗子1:查询学号为 001101 的学生的学号与姓名

set serveroutput on;
declare
stuno xs.sno%type;
stuname xs.sname%type;
begin
select sno,sname into stuno,stuname
from xs where sno='001101';
dbms.output.put_line(stuno||stuname);
end;
/

这样可以将查询的结果保存起来 显示或者提供给下面程序进行使用。那么保存的结果就放在定义的 stuno和stuname变量中。dbms_output.put_line显示出查询的结果。


查询学号为001101的学生的信息(存储表的一行)

set serveroutput on;//开关变量 设为on
declare
    stu xs%rowtype;
begin 
    select * into stu from xs where sno='001101';
    dbms_output.put_line(stu.sno||stu.sname);
end;
/

游标
用来查询数据库,获取记录集合的指针,让开发者能一次访问一行或者多行结果集,在每条结果集上做操作。
它的作用就是临时存储从数据库库中提取的数据块。


游标定义的格式
cursor 游标名 is select 语句;


游标循环的两种方式
1 游标变量循环
2 游标 for循环

1.游标变量循环

open 游标;
loop
fetch 游标 into 游标变量;
处理语句;
exit when 游标%notfound ;
end loop
close 游标;

for循环格式

for 游标变量 in 游标 loop;
--处理语句;
end loop;

栗子:查询所有学生的学号和姓名 (利用游标变量循环)

declare
stu xs%rowtype;
cursor cur_stu is select * from xs;
begin
open cur_stu;
loop
fetch cur_stu into stu;
exit when cur_stu%notfound;
dbms_output.put_line(stu.sno||stu.sname);
end loop
close cur_stu;
end;
/

利用 for循环求

declare
    cursor cur_stu is select * from xs;
begin 
    for stucur in cur_stu loop;
        dbms_output.put_line(stucur.sno||stucur.sname);
    end loop;
end;
/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值