一、语法
DECLARE
--声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数
变量名 变量类型
变量名 变量类型 := 初始值;
BEGIN
-- 执行部分: 过程及SQL语句, 即程序的主要部分
EXCEPTION
-- 执行异常部分: 错误处理
END;
declare
i varchar2(10) := 'mark';
begin
dbms_output.put_line(i); --相当于Java中的System.out.println();
end;
二、变量定义(引用类型%type和记录类型%rowtype)
vsal emp.sal%type; -- 定义引用类型变量名称为vsal(类型与emp表中sal字段类型一致)
vrow emp%rowtype; --定义记录型变量名称为vrow(类型与emp表中行记录一致)
--查询7369的工资,并且打印出来
declare
vsal emp.sal%type;
begin
--将查询出的结果赋值给vsal
select sal into vsal from emp where empno = 7369;
dbms_output.put_line(vsal);
end;
declare
vrow emp%rowtype;
begin
select * into vrow from emp where empno = 7369;
dbms_output.put_line('姓名:'||vrow.ename || '工资'|| vrow.sal);
end;
三、条件判断
if 条件1 then
操作1
elsif 条件2 then
操作2
elsif 条件3 then
操作3
--其他elsif 条件n then
操作n
else
操作n+1
end if;
--根据不同年纪,输出相关内容
declare
vage number := &aaa;-- &名称,PL/SQL会弹出一个变量框输入弹窗,可以向里面输入数据
begin
if vage<18 then
dbms_output.put_line('小孩');
elsif vage>=18 and vage<40 then
dbms_output.put_line('青年');
elsif vage>=40 and vage<60 then
dbms_output.put_line('中年');
else
dbms_output.put_line('老年');
end if;
end;
四、循环
1.while
--while 循环
while 条件 loop
end loop;
--输出1-10
declare
i number := 1;
begin
while i<=10 loop
dbms_output.put_line(i);
i := i+1;
end loop;
end;
2.for
--for循环,reverse表示倒叙
for 变量 in [reverse] 起始值..结束值 loop
end loop;
--输出1-10
declare
begin
for i in 1..10 loop
dbms_output.put_line(i);
end loop;
end;
3.loop
--loop循环
loop
exit when 条件
end loop;
--输出1~10
declare
i number :=1;
begin
loop
exit when i>10;
dbms_output.put_line(i);
i := i+1;
end loop;
end;