-
2—2 引用型变量和记录型变量查看全部
-
oracle连接
查看全部 -
declare 声明查看全部
-
PLSQL程序设计综合案例
程序设计方法
瀑布模型:
需求分析
设计:概要设计,详细设计
编码:coding
测试:testing
上线部署
编写程序,方法:
1.考虑需要用到什么sql语句
2.考虑会需要哪些变量,考虑变量的初始值,最终值如何得到
查看全部 -
自定义例外
定义变量,类型是exception
使用raise抛出自定义例外
--------------------------实例如下-----------------------------------------------------------------------------------------------------------------
declare
--声明游标
cursor cemp(dno number) is select ename from emp where deptno=dno;
--定义变量
pname emp.ename%type;
--定义特殊异常变量
no_emp_found exception;
begin
--打开游标
--20为部门号,是游标传入的形参对应的实参
open cemp(50);
--游标读取第一行数据
fetch cemp into pname;
--判断游标是否有读取到数据
if cemp%notfound then
--没有,则使用raise关键字将自定义异常抛出
raise no_emp_found;
--如果有数据,则进行循环读取并打印出来
else
loop
--注意此处打印语句,如果移到fetch后,则打印的结果会少一个,
--因为前面游标已经读取了一条,不在循环之前打印出来有直接往下读取了,所以就导致了少了一条数据
dbms_output.put_line(pname);
fetch cemp into pname;
--当游标读取完所有数据后退出循环
exit when cemp%notfound;
end loop;
end if;
--注意:当系统抛出异常,游标并没有被关闭,oracle自动启动pmon(process monitor:进程监视器),
--将遗留的垃圾进行一个个回收清理干净
close cemp;
--例外
exception
--接收抛出的异常并作出处理
when no_emp_found then dbms_output.put_line('找不到员工');
when others then dbms_output.put_line('其他例外');
end;
/
查看全部 -
算术或者转换例外:value_error
查看全部 -
系统例外之 zero_divide
查看全部 -
系统例外之 too_many_rows
查看全部 -
系统例外之 no_data_found
查看全部 -
PLSQL中的例外
例外是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性
系统例外
No_data_found (没有找到数据)
Too_many_rows (select...into 语句匹配多个行)
Zero_Divide (被零除)
Value_error(算术或转换错误)
Timeout_on_resource (在等待资源是发生超时)
查看全部 -
带参数的光标
cursor 光标名 [(参数名 数据类型[,参数名 数据类型]...)] is select 语句;
查看全部 -
1.光标的属性
%found %notfound
%isopen:判断光标是否打开 true/false
%rowcount:影响的行数
2.光标数的限制:默认情况下,oracle数据库只允许在同一个会话中,打开300个光标
修改光标数的限制:
alter system set open_cursors=400 scope=both;
scope的取值:both,memory,spfile(数据库需要重启)
查看全部 -
光标(游标)使用语法:
定义游标
为光标定义对应的变量
在程序体中打开光标
循环体中不断取出新数据
关闭光标
程序执行如果没报错,也没产生效果,原因在于PLSQL程序体有对sql语句操作(对数据进行更改)时,需要在事物中执行;而oracle默认事物级别为read committed,意味着如果没有加上commit 进行提交,将不会产生效果(这里涉及到事物的原子性,隔离性,完整性和一致性),所以在关闭光标后需要提交事物。
提交事物(涉及数据更改时)
如果在写commit之前执行过PLSQL程序一次了,但是数据没发生改变,那么,在加上commit之后,最好在begin 后面加个 rollback,将刚才的执行过的回退掉,防止影响到结果
查看全部 -
光标(游标)
引用变量类型和记录标量类型都不能代表一个集合,而光标可以,它就是一个结果集。
查看全部 -
循环语句
while
Loop
EXIT [when 条件]; ---当条件成立的时候,退出循环
....... ---否则进入循环操作要执行的语句
End loop;
For
FOR i IN 1..3 LOOP
语句序列;
END LOOP;
查看全部
举报