大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说01. PLSQL 语法(变量,if,loop,cursor,exception)「建议收藏」,希望您对编程的造诣更进一步.
1. 语法
-
在数据库服务器上保存的打断可执行方法,供其他开发人员调用
-
可以有效的减少数据库端和服务端的数据交互,提高效率,降低带宽消耗
-
语法格式:
declare -- 定义部分,保存变量,引用型变量,记录型异常 begin -- 逻辑处理部分 exception -- 需要捕获异常是写上 end; -- 结束
代码100分
2. 定义变量
定义 | 描述 |
---|---|
constant | 常量 |
表名%rowtype | 记录型变量 |
表名.列名%type | 引用型变量 |
:= | 给变量赋予默认值 |
into | 把查询出来的数据进行赋值 |
- 实例
代码100分declare -- 定义变量 i number := 1; -- 定义常量 pi constant number := 2; -- 定义记录型变量/记录一行数据 -- 变量名 表名%rowtype; v_emp emp%rowtype; -- 定义引用型变量 -- 变量名.列明%type pname emp.ename%type; begin select * into pemp from emp;end;
3. if判断
语法:
/* if判断: if 条件表达式 then elsif 条件表达式 then else end if; */ -- 实例: declare age number := 18; begin if age = 17 then dbms_output.put_line("我是17"); elsif age = 18 then dbms_output.put_line("我是18"); else dbms_output.put_line("我是??"); end if; end;
4. loop循环
-
语法:
代码100分
/* 语法一: 相当于while循环 while 条件表达式 loop end loop; */ -- 实例 declare i number := 0; begin while i < 10 loop i := i + 1; dbms_output.put_line(i); end loop; end; /* 语法二: loop exit when 退出循环条件 end loop; */ -- 实例: declare i number := 0; begin loop i := i + 1; exit when i > 10; dbms_output.put_line(i); end loop; end; /* 语法三: 1..10: 也可以是查询出来的结果集 for 变量 in 1..10 loop; end loop */ -- 实例: declare i number := 0; begin for i in 1..10 loop dbms_output.put_line(i); end loop; end;
5. cursor游标
-
是一个私有的SQL工作区,分为隐式游标和显示游标,我们通常声明的是显示游标
-
用来操作结果的,相当于java中的迭代器
-
语法:
/* 开发步骤: 1. 声明游标: cursor 游标名 is 查询结果集 2. 打开游标: open 游标名 3. 从游标中取出数据: fetch 游标名 into 变量名 游标名%found: 找到数据 游标名%notfound: 没有找到数据 4. 关闭游标 */ declare emp_rows emp%rowtype; -- 1. cursor rows is select * from emp; begin -- 2. open rows; -- 2.1 loop -- 3. fetch rows into emp_rows; -- 3.1 exit when rows%notfound; dbms_output.put_line(emp_rows.ename); -- 3.2 end loop; -- 4. close rows; end;
6. exception异常
类型 | 描述 |
---|---|
no_data_found | 找不到数据 |
too_many_rows | 匹配到多个字符 |
zero_divide | 零除 |
value_error | 算数或转换异常 |
timeout_on_resource | 在等待资源时发生超时 |
others | 最大的异常/相当于java中的exception |
-
语法:
/* yvfa: declare begin exception when 异常类型 then 处理 end; */ -- 实例: declare num number := 1; begin num := num/0 ; exception when zero_divide then dbms_output.put_line("除零异常"); end; -- 自定义异常: declare no_date exception; begin raise no_date; exception when no_date then dbms_output.put_line("自定义异常"); end;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8813.html