一、什么是pl sql
pl procedural language sql 带有过程的sql语句
--打开输出流
set serverout on;
二、pl sql块的基本组成
DECLARE
声明部分
BEGIN
编写主题
EXCEPTION
捕获异常
END;
/
'/'这个符号必须有 用于结束以上那段话
三、 pl sql定义变量
变量以v_ 开头
例如v_name:='myname';
输出语句:dbms_output.put_line(v_name);
声明变量的原则:
1.不能用保留字
2.第一个字符必须是字母
3.变量名最多包含30个字符
4.不要与数据库的表或者列同名
5.每一行只能声明一个变量
变量的基本类型
1.基本类型
2.引用类型
<1>binary_integerl 二进制位整数 一般用于计数
<2>number 数字类型
number(7,2) 一共七位数,小数点后两位,其余五位
<3>定长字符串
sal 最长2000 pl sql 最长32767
<4>varchar2 变长字符串
sal 最长4000 pl sql 最长32767
<5>long
长字符串 最长2GB
<6> date 日期
<7> boolean 布尔型 可以 取值true false 或null值
注意:oracle不能打印布尔型(参数类型错误)
3.复合类型
<1>%type字段类型
好处:便于维护
<2>table 数组类型
<3>record自定义记录类型
相当于java里的类。。自定义类型
<4>rowtype记录类型
使用rowtype声明 record变量:记录类型、行类型
好处:可维护
3v_flag boolean;默认值为null
如果想打印出来就用if else 来判断
declare
v_flag boolean:=flase;
begin
if(v_flag=flase) then
dbms_output.put_line('flase');
end if;
end;
/
四、捕获异常
EXCEPTION
WHEN OHERS then
dbms_output.put_line('error');
end;
异常类型:
zero_divid;除数为0的异常
五、游标的使用
1.什么时候用游标?
如果查出来记录只有一条,可以直接select*into 如果是多条数据,使用游标遍历
2.游标:一种pl/sql控制结构:可以对sql语句处理进行显示控制,便于对表的行数据逐条进行处理
操作步骤:
<1>声明游标
<2>打开游标,每fetch一次往下移动一条记录
<3>取出结果,此时的结果取出的是一行数据
<4>关闭游标
3.声明游标
declare
cursor c is
select * from emp;
v_emp emp%rowtype;
begin
open c;
loop
fetch c into v_emp;
exit when (c%notfound);
dbms_output.put_line(v_emp.ename);
end loop;
close c;
end;