PLSQL
PL/SQL程序由三个块组成,即
声明部分 、执行部分、异常处理
Declare
声明部分:在此声明PL/SQL用到的用到的变量,类型以及游标,还有局部存储过程和函数
Begin
执行部分:过程及SQL语句,即程序主要部分
Exception
执行异常部分,错误处理
END;
基本语法使用
定义记录类型
Declare
type test_rec is record(
l_name varchar2(30),
d_id number(4)
);
v_emp test_rec;
begin
v_emp.l.name:=‘Tom’;
v_emp.d_id:=1234;
dbms_output.put_line(v_emp.l_name || ','|| V_emp.d_id);
end;
数据查询操作
Declare
type test_rec is record(
l_name varchar2(30),
d_id number(4)
);
v_emp test_rec;
begin
select last_name, department_id into v_emp
from employees
where employee_id=200;
end;
使用rowtype表示所有行
declare
v_emp employees%rowtype;//表示employees表里面的字段放入v_emp
数据库赋值
Declare
emp_id emp.empno%TYPE:7788;
emp_name emp.ename%TYPE;
wages emp.sal%TYPE;
Begin
select ename, NVL(sal,0) into emp_name, wages
From emp where empNo = emp_id
dbms_output.put_line(emp_name||'---'||to_char(wages));
End;
流程控制语句
if 条件 then 实现
elsif 条件 then 实现
elsif 条件 then 实现
else 实现
end if;
Case表达式
case selector
when expression1 then result1
when expression2 then result2
```
when expressionN then resultN
[Else resultN+1]
end;
循环语句
Loop
执行语句
exit when<条件语句>;
end loop;
while
while 布尔表达式 loop
要执行的语句;
end loop;
数字循环
for 循环计数器 in (reverse)下限..上限 loop
执行的语句;
end loop;
使用Goto跳转
Goto lable
...
<<label>>
游标的使用
游标
declare
--定义游标
cursor c_cursor is select last_name, salary
from employees
where rownum < 11
order by salary;
v_name employees.last_name%type;
v_sal employees.salary%type;
begin
--打开游标
open c_cursor;
--提取游标
fetch c_cursor into v_name, v_sal;
while c_cursor %found loop
dbms_output.put_line(v_name || ':' || v_sal);
fetch c_cursor into v_name, v_sal;
end loop;
--关闭游标
close c_cursor;
end;
%FOUND 最近一次读取记录是否成功
%NOTFOUND 与上相反
%ISOPEN 游标打开,返回true
%ROWCOUNT 读取游标记录数
待更新。。。