【1】Oracle_PL/SQL

前端之家收集整理的这篇文章主要介绍了【1】Oracle_PL/SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、PL/sql(Procedure Language/sql)概述:

指在sql命令语言中增加了过程处理语句,使sql语言具有过程处理能力。

2、语法:

[declare]
---声明部分(变量,光标,例外)
begin
--pl/sql程序体
[exception]
--处理异常
end;

3、定义变量及常量


定义number变量,定义PI常量,定义记录型变量,定义引用型变量
declare
inumber;--变量赋值
PIconstantnumber:=3.14;--定义常量
pempemp%rowtype;--记录型变量
pnameemp.ename%type;--引用型变量
begin
i:=1;
--PI:=PI+1;
dbms_output.put_line(i);
dbms_output.put_line(PI);
select*intopempfromempwhereempno=7788;
dbms_output.put_line('编号:'||pemp.empno||'姓名:'||pemp.ename);
selectenameintopname'姓名:'||pname);
end;

执行结果:

4、If语句

语法:
if判断分支语法:
if条件判断then
elsif条件判断then
else
endif;
end;
案例1: 从控制台输入一个数字,如果数字是1,则输出我是1
number:=#
ifi=1then
'我是1');
else
'我不是1');
endif;
;
案例2: 如果输入的年龄在18岁以下,输出未成年人,18~40:成年人,40以上老年人
number:=&i;
ifi<18'未成年人');
elsifi>=andi<40'成年人');
'老年人');
;

5、loop循环

语法1:
while循环条件loop
endloop;
语法2:(常用)
loop
exitwhen退出循环条件;
语法3:
foriin1..10loop
endloop;
案例1: 语法1实现在控制台输出1~10
whilei<=10loop
i:=i+loop;
;
语法2实现在控制台输出1~10(掌握)
exitwheni>10;
'第二种'||i);
案例3: 语法3实现在控制台输出1~10
fornum3in1..10'第三种'||num3);
loop;
;

6、光标

概述:就是在pl/sql编程中结果集的概念
cursor光标名称isselect查询语句;
提取游标:
open游标名称;
fetch游标名称into变量;
exitwhen游标%notfound;
endloop;
close游标名称;
案例1:使用光标输出emp表中7369的员工信息
cursoremp_curis7369;
rowtype;
openemp_cur;
fetchemp_curintopemp;
closeemp_cur;
输出指定部门的员工信息
cursoremp_cur(dnonumber)wheredeptno=dno;
openemp_cur(20);
whenemp_cur%notfound;
案例3:给部门编号为10的员工涨工资
declare
wheredeptno=dno;
rowtype;
begin
10);
loop
intopemp;
notfound;
updateempsetsal=sal+10000whereempno=pemp.empno;
'姓名:'||pemp.ename);
loop;
commit;
closeemp_cur;
select * from emp where deptno=10;
7、例外
(1)系统异常,被0除的zero_divide异常
i:=i/0;
exception
whenzero_divide'不能除以0');
(2) 系统异常,设置错误的value_error异常
'hello';
whenvalue_error'赋值错误');
(3) 系统异常,都可以通过others异常捕获
whenothers'有错误');
(4) 自定义异常,查询部门编号为50员工(自定义exception)
wheredeptno=50;
no_dateexception;
ifemp_cur%notfoundraiseno_date;
if;
closeemp_cur;
whenno_date'没有查到数据');
; 原文链接:https://www.f2er.com/oracle/211608.html

猜你在找的Oracle相关文章