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.小提示
标签:...,end,plsql,sal,employees,---,emp,入门 From: https://www.cnblogs.com/mxx520/p/16981838.htmlif sql%notfound then dbms_output.put_line(‘查无此人’);