PLSQL 过程语言 - 结构化查询语言
procedure language 过程语言,oracle 对 sql 的一个扩展
让我们能够像在 java 中一样写 if else else if 条件,还可以编写循环逻辑 for while。
--1--声明变量,并输出
declare
i varchar2(10):= '张三';
begin
dbmsoutput.putline(i);
end;
--2--查询 7360 的工资,并打印出来
declare
vsal scott.emp.sal%type;--引用型变量
begin
select sal into vsal from scott.emp where empno='7369';
dbmsoutput.putline(vsal);
end;
--3--查询 7360 的员工信息,并打印出来
declare
vrow scott.emp%rowtype; --声明记录型变量
begin
select * into vrow from scott.emp where empno='7369';
dbmsoutput.putline('姓名'||vrow.ename || '工资'||vrow.sal);
end;
--4--条件判断,根据不停年龄,输出相关内容
declare
age number := 60;
begin
if age < 18 then
dbmsoutput.putline('小屁孩');
elsif age >= 18 and age <=25 then
dbmsoutput.putline('年轻人');
elsif age >25 and age <40 then
dbmsoutput.putline('老司机');
else
dbmsoutput.putline('老年人');
end if;
end;
--5--while 循环,输出 1~10;
declare
i number :=1;
begin
while i<=10 loop
dbmsoutput.putline(i);
i :=i+1;
end loop;
end;
--6-- for 循环,输出 1~12
declare
i number :=1;
begin
for i in 1..12 loop
dbmsoutput.putline(i);
end loop;
end;
--7--倒序输出 reverse
declare
i number :=1;
begin
for i in reverse 1..12 loop
dbmsoutput.putline(i);
end loop;
end;
--8--loop 循环输出 1~20
declare
i number :=1;
begin
loop
exit when i>20;
dbmsoutput.putline(i);
i :=i+1;
end loop;
end;
--9--输出菱形
declare
m number :=10;
begin
for x in -m..m loop
for y in -m..m loop
if abs(y)+abs(x)<=m then
dbms_output.put('*');
else
dbms_output.put(' ');
end if;
end loop;
dbmsoutput.newline();
end loop;
end;
--10-- 输出三角形
declare
m number :=10;
begin
for x in reverse -m..m loop
for y in -m..m loop
if abs(y)+abs(x)<=m and x>0 then
dbms_output.put('*');
else
dbms_output.put(' ');
end if;
end loop;
dbmsoutput.newline();
end loop;
end;
版权声明: 本文为 InfoQ 作者【Flychen】的原创文章。
原文链接:【http://xie.infoq.cn/article/83b5b71b1a0dbb8e6cef4487b】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论