Presentation is loading. Please wait.

Presentation is loading. Please wait.

ORACLE 第五讲 PL/SQL编程基础.

Similar presentations


Presentation on theme: "ORACLE 第五讲 PL/SQL编程基础."— Presentation transcript:

1 ORACLE 第五讲 PL/SQL编程基础

2 本章目标 掌握PL/SQL数据类型及变量常量的定义 掌握对象类型的赋值和使用 掌握接收用户输入值及使用 掌握分支结构 掌握循环结构

3 PL/SQL程序块基本结构 declare 变量,常量,数据对象的声明。 begin 功能语句部分 [exception 异常处理语句部分] end;

4 PL/SQL数据类型 PL/SQL数据类型 int ,整型 number,数字型 varchar2,字符型 date,日期型
boolean,布尔型

5 PL/SQL变量的定义 创建变量 语法: 变量名 数据类型 举例: stuname varchar2(100);

6 PL/SQL常量的定义 创建常量 语法: 举例: 常量名 CONSTANT 数据类型:=值
pi CONSTANT number:=3.14;

7 PL/SQL变量的赋值 变量的赋值 语法: 举例: 变量名 数据类型:=值 变量名:=值(之前已定义过变量) select…into 变量名
i int:=5; i int; i:=5; select count(*) into icount from emp; 综合举例:求圆面积

8 PL/SQL数据对象类型 字段变量-%type 记录变量-%rowtype 赋值: 定义:id emp.empno%type;
定义:r_emp emp%rowtype; 赋值: select empno into id from emp where ename=‘SMITH’; select * into r_emp from emp where empno=‘7369’;

9 PL/SQL数据对象类型 综合举例:输出编号为7369的部门编号、姓名。

10 PL/SQL接受用户输入值 语法: &参数名,参数名是弹出的对话框上显示的文字,当有参数输入后则会替换’&参数名‘,例如,empno=&编号,输入7369之后,则在程序运行时即为empno=7369 注意:如果接受的参数不是数字型或整型,那么要用‘ ’,引起来。

11 PL/SQL接受用户输入值 用法: e_empno emp.empno%type:=&empno;
select ename,sal into r_emp.ename, r_emp.sal from emp where empno=&empno; 综合举例: 输入半径求得圆的面积。 输入员工编号获得该员工的编号和职位 输入员工姓名获得该员工的编号和职位

12 PL/SQL分支结构 IF…THEN END IF; ELSE

13 PL/SQL分支结构 IF…THEN ELSIF…THEN ELSE END IF;

14 PL/SQL分支结构 CASE selector WHEN…THEN… ELSE… END CASE;

15 PL/SQL分支结构 接收一个部门号,根据不同的部门号,为其下面的员工增加相应的sal。
如果员工编号为7369,则输出员工姓名、薪水。(如果不是则输出“不是我所找的人!”)

16 PL/SQL循环结构 LOOP WHILE loop 计数器 exit when 退出条件; …(循环体) end loop;

17 PL/SQL循环结构 FOR for 循环条件 loop …(循环体) end loop; 求1到100的和。

18 PL/SQL异常—预定义异常 NO_DATA_FOUND TOO_MANY_ROWS ZERO_DIVIDE 除数为零
在表中不存在请求的行时出现。此外,当程序引用已经删除的元素时,也会引发此异常 TOO_MANY_ROWS 在执行SELECT INTO语句后返回多行时出现 ZERO_DIVIDE 除数为零

19 PL/SQL异常—预定义异常 ACCESS_INTO_NULL CASE_NOT_FOUND COLLECTION_IS_NULL
在未初始化对象时出现 CASE_NOT_FOUND 在CASE语句中的选项与用户输入的数据不匹配时出现 COLLECTION_IS_NULL 在给尚未初始化的表或数组赋值时出现

20 PL/SQL异常—预定义异常 CURSOR_ALREADY_OPEN 在用户试图重新打开已经打开的游标时出现。在重新打开游标前必须先将其关闭
INVALID_CURSOR 在执行非法游标运算(如打开一个尚未打开的游标)时出现

21 PL/SQL异常—预定义异常 VALUE_ERROR 在产生大小限制错误时出现。例如,变量中的列值超出变量的大小

22 PL/SQL异常—预定义异常 用法: declare begin exception when 预定义异常名 then ……. end;

23 PL/SQL异常—自定义异常 用法: declare
myexception1 exception; 先定义一个 exception类型的变量; myexception2 exception; begin raise myexception1 ; 在需要的地方用raise抛出异常 raise myexception2 ; exception when myexception1 then 在exception部分定义异常信息 ……. when myexception2 then end;

24 PL/SQL异常—引发应用程序错误 语法:
RAISE_APPLICATION_ERROR(error_number,error_message); error_number:表示用户为异常指定的编号。该编号必须是介于-20000和-20999之间的负整数。 error_message:表示用户为异常指定的消息文本。消息长度可达2048字节。错误消息是与error_number相关联的文本。 RAISE_APPLICATION_ERROR过程既可以在PL/SQL程序的可执行部分中使用,也可以在其异常部分中使用。在调用此过程时,将同时显示仪错误编号和消息。

25 PL/SQL异常—引发应用程序错误 用法: declare exception1 exception;
begin raise exception1 ; raise exception2 ; exception when exception1 then raise_application_error(-20001,’错误信息’); when exception2 then raise_application_error(-20002,’错误信息’); end;


Download ppt "ORACLE 第五讲 PL/SQL编程基础."

Similar presentations


Ads by Google