目标:
1.理解PL/SQL组成及体系结构
2.了解变量及其用法
3.使用控制语句进行编程
4.掌握游标的基本原理,理解游标的工作过程和分类
5.会创建动态sql语句
6.能够使用异常处理问题
1.PL/SQL
PL(过程语言)SQL(结构化查询语言)结合而成的编程语言,下面需要讲:变量和类型、控制语句、子程序和函数、对象类型和方法。
原理:用户发送PL/SQL块发给Oracle服务器,由服务器中的PL/SQL引擎进行判断,是过程语句就由过程语句执行器来执行,SQL语句就由SQL语句执行器来执行。
组成:分为三部分(声明部分、可执行部分、异常处理部分)
语法:
[declare -- Local variables here i integer;] begin[Exception hanlers]end;
2.声明部分:
这里能使用的数据类型包括:
标量类型:数字、字符、布尔、日期时间
LOB类型:BFILE、BLOB、CLOB、NCLOB
属性类型:%TYPE、%ROWTYPE
v_name varchar2(20):=‘张三‘; v_sal number default 1000; c_rate constant number(4,3):=0.037; v_income number(10,3);v_name teacher.tname%type;
注:常量为constant
对变量进行赋值:
begin select tname,tcal into v_name,v_sal from teacher where no=1004; dbms_output.put_line(v_name);//输出语句 end;
3.控制语句结构
条件控制:if、case
循环控制:loop、while、for
顺序控制:null、goto
//1.if语句 if <布尔表达式> then elsif <布尔表达式> then else end if; //2.case语句 case 条件表达式 when 结果1 then 语句段1 when 结果2 then 语句段2 else 语句段 end case;
//3.loop循环语句 loop 要执行的语句 exit when <条件语句> end loop; //4.while语句 while <布尔表达式> loop 要执行的语句; end loop; //5.for 循环 for 循环计数器 in [reverse] 下限..上限 loop 要执行语句; end loop;
4.游标的使用
什么是游标:游标是系统为用户开设的一个数据缓冲区,存放sql语句的执行结果,每个游标区都有一个名字。用户,可以通过游标逐一获取记录。
游标类型:静态游标(编译是知道其select语句的游标)、动态游标(运行时动态决定执行何种查询)
声明游标:cursor cursor_name is query_sql;
打开游标: open cursor_name;
提取游标: fetch cursor_name into variable_list;
(使用fetch语句实现对游标内容的读取,variable_list必须从游标提取的结果集类型相同)
关闭游标:close cursor_name;
游标的属性:
%fount:用于检验游标是否成功,一般在fetch语句前使用,当游标按照条件查询出一条记录时,返回true.
%isopen:用于判断游标是否处于打开状态,尝试打开一个已经打开或者已经关闭的游标,会报错
%notfound:当按照条件无法查询到记录时,会返回ture.
%rowcount:循环执行游标读取数据时,返回检索出的记录数据行数