1.plsql入门

学习教程:https://www.oraclejsq.com/plsql.html

1.最基本PLSQL结构

declare
---声明的变量,类型,游标
begin
---程序的执行部分(类似于java里的main()方法)
dbms_output.put_line('hello world');
exception
---针对begin块中出现的异常,提供处理的机制
---when .... then ...
---when ....then ...
end;

2.变量赋值

2.1 自动获取类型跟固定类型

declare
---申明变量
v_sal employees.salary%type;--跟随数据表栏位类型,动态获取类型
v_email varchar2(20);
v_date date;
begin
---sql语句的操作:select ... into ...from ... where ...
select salary,email,date into v_sal,v_email,v_date from employees where a=100;
---打印
dbms_output.put_line(v_sal||','||v_email||','||v_date);
end;

2.2 不暴漏(记录类型)

declare
---申明一个记录类型
type emp_record is record(
v_sal employees.salary%type,--跟随数据表栏位类型,动态获取类型
v_email varchar2(20),
v_date date
);
---定义一个记录类型的成员变量
v_emp_record emp_record;
begin
---sql语句的操作:select ... into ...from ... where ...
select salary,email,date into v_emp_record from employees where a=100;
---打印
dbms_output.put_line(v_emp_record);
end;

2.3 整表为变量并赋值

declare
v_emp_record employees%rowtype;
begin
select * into v_emp_record from employees where a=100;
dbms_output.put_line(v_emp_record.employees_id);
end;

2.4 改

declare
v_emp_id number(10) ;
begin
v_emp_id :=123;
update employees set salary=99 where a=v_emp_id;
dbms_output.put_line('执行成功');
end;

4.基本语法格式之流程控制

4.1 条件控制(两种)
方式一:if ... then elsif then ... else ... end if;
方式二:case ... when ... then ... end;
4.2 循环结构(三种)
方式一:loop ... exit when ... end loop;
方式二:while ... loop ... end loop;
方式三:for i in ... loop ... end loop;
4.3 goto , exit

5.基本语法之游标的使用

在plsql程序中,对于处理多行记录的事务经常使用游标来实现

declare
v_sal employees.salary%type
--定义游标
cursor emp_sal_cursor is select salary from employees where dep_id=80;
--打开游标
open emp_sal_cursor;
--提取游标
fetch emp_sal_cursor into v_sal;
while emp_sal_cursor%found loop
dbms_output.put_line('salary'||v_sal);
fetch emp_sal_cursor into v_sal;
end loop;
--关闭游标
close emp_sal_cursor;
begin
end;

6.基本语法之异常的处理(三种方式)

异常情况处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理预定义的错误和自定义错误.由于plsql程序块一但产生异常而没有指出如何处理时,程序就会自动终止整个程序运行.

7.会写一个存储函数(有返回值),存储过程(没有返回值)

8.会写一个触发器

在某种情况下触发,如增删改
触发器组成:

  • 触发事件
  • 触发时间
  • 触发器本身
  • 触发频率

9.plsql注释

9.1 单行注释使用:--

9.2 多行注释使用:/* ..... */

10.小提示

if sql%notfound then dbms_output.put_line(‘查无此人’);

posted @ 2022-12-14 13:35  种太阳  阅读(182)  评论(0编辑  收藏  举报