一.什么是PL/SQL?
PL/SQL(Procedure Language/SQL)
示例1:为职工涨工资,每人涨10%的工资。
update emp set sal = sql * 1.1
示例2:按职工的职称涨工资,总裁涨1000元,经理涨800元,其他人员涨400元。
这样的需求无法用一条SQL语句来实现,需要借助其他程序来帮助完成,也可以使用PL/SQL。
二.PL/SQL的语法
declare
说明部分(变量说明,光标说明,例外说明)
begin
语句序列
exception
例外处理语句
End;
三.常量和变量的定义
说明变量(char, varchar2, date, number, boolean, long)
var1 char(15);说明变量名,数据类型和长度后用分号结束说明语句。
married boolean :=true; :=为变量赋值
psal number(7,2);
my_name emp.name%type; 引用型变量,即my_name的类型与 emp表中ename列的类型一样
emp_rec emp%rowtype;记录型变量
引用型变量
declare
pename emp.ename%type;
psal emp.sal%type;
begin
select ename,sal into pename,psal from emp where empno=7839;
dbms_output.put_line(pename||'的薪水是'||psal);
end;
/
打印:KING的薪水是5000
记录型变量
declare
emp_rec emp%rowtype;
begin
select * into emp_rec from emp where empno=7839;
dbms_output.put_line(emp_rec.ename||'的薪水是'||emp_rec.sal);
end;
打印:KING的薪水是5000
四.if语句
示例:如果从控制台输入1则输出我是1,否则输出我不是1
declare
pnum number := # –&直接从地址赋值
begin
if pnum = 1 then
dbms_output.put_line(‘我是1’);
else
dbms_output.put_line(‘我不是1’);
end if;
end;
五.循环
范例:输出1到10的数字
declare
step number := 1;
begin
while step <=10 loop
dbms_output.put_line(step);
step:=step+1;
end loop;
end;
declare
step number:=1;
begin
for step in 1..10 loop
dbms_output.put_line(step);
end loop;
end;