oracle PL/SQL知识点总结

PL/SQL(Procedural Language/SQL,过程语言/SQL)
它是结合Oracle过程语言和结构化查询语言的一种扩展语言
PL/SQL支持多种数据类型,可以使用条件语句和循环语句等控制结构
PL/SQL可用于创建存储过程、触发器和程序包,也可以用来处理业务规则、数据库事件或给SQL命令的执行添加程序逻辑

PL/SQL的块由变量声明、程序代码和异常处理代码3部分组成:
DECLARE
标记声明部分
变量的声明,必须要在begin前面
声明一些变量、常量、用户定义的数据类型及游标
name varchar(30); --声明时不设置值
name varchar(30):=‘Jack’;--声明带有默认值
name preson.name%type; --直接引用一个表的数据类型
BEGIN
标记主程序体部分开始
主程序体,在这里可以加入各种合法语句
EXCEPTION
标记异常处理部分开始
异常处理程序,当程序中出现错误时执行这一部分
END
标记主程序体结束部分

声明变量:

varl             char(15);
married      boolean :=true;
psal            number(7,2);
my_name   emp.ename%type;
emp_rec     emp%rowtype;

声明常量:

<常量名> constant <数据类型> := <值>;

set severoutput on           //在plsqldevelop中不用设置
--声明一个变量并输出
declare
       name varchar(10):=‘HelloWorld';
  begin
     dbms_output.put_line(name);
  end;

声明一个记录类型:

declare
type emp_record_type is RECORD((--定义一个记录类型,包含员工信息
  ename emp.ename%type,
  sal emp.sal%type,
  comm emp.comm%type,
  total_sal sal%type);
v_emp_record emp_record_type;--声明记录类型变量
begin
  select ename,sal,nvl(comm,0),sal+nvl(comm,0) into v_emp_record
  from emp where empno=7369;
  dbms_output.put_line('员工姓名:'|| v_emp_record.ename);
  dbms_output.put_line('基本工资:'|| v_emp_record.sal);
  dbms_output.put_line('奖金:'|| v_emp_record.comm);
  dbms_output.put_line('实发工资:'|| v_emp_record.total_sal);
end;

声明一个table数据类型:

declare
type dept_table_type is table of dept%rowtype
index by binary_integer;
v_dept_table  dept_table_type;
begin
  select * into v_dept_table(0) from dept where deptno=10;
  select * into v_dept_table(1) from dept where deptno=20;
  dbms_output.PUT_LINE('编号:'||v_dept_table(0).deptno||'   名称:'
        ||v_dept_table(0).dname||'   所在地:'||v_dept_table(0).loc);
  dbms_output.PUT_LINE('编号:'||v_dept_table(1).deptno||'   名称:'
        ||v_dept_table(1).dname||'   所在地:'||v_dept_table(1).loc);
end;

流程控制语句是所有过程性程序语言的关键
PL/SQL的主要控制语句如下:
if...then      elsif … then      end if;
判断if正确则执行then,否则执行else(elsif为嵌套判断)
注意elsif,里面少一下e.
Case  var  when … then    when … then   end
有逻辑的从数值中做出选择
Loop     exit    end loop
循环控制,用判断语句执行exit
Loop       exit when …        end loop
同上,当when为真时执行exit
while..loop         end loop
当while为真时循环
for...in...loop        end loop

 

 

你可能感兴趣的:(数据库)