加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【1】Oracle_PL/SQL

发布时间:2020-12-12 15:40:24 所属栏目:百科 来源:网络整理
导读:1、PL/SQL(Procedure Language/SQL)概述: 指在SQL命令语言中增加了过程处理语句,使sql语言具有过程处理能力。 2、语法: [declare] ---声明部分(变量,光标,例外) begin --pl/sql程序体 [exception] --处理异常 end; 3、定义变量及常量 定义number变

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'没有查到数据'); ;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读