--求n的阶乘
declare
n number:=&n;
s number:=1;
i number:=1;
sums number:=0;
begin
for i in 1..n loop
s:=s*i;
sums:=sums+s;
end loop;
dbms_output.put_line(n||'的阶乘为:'||s);
dbms_output.put_line(n||'的阶乘和为:'||sums)
end;
--编写一个程序,输入一个整数,使用循环结构将该数字左右翻转,输出翻转后的结
--果。
方法一:
SELECT reverse('123456') FROM dual;
方法二:(符合题目要求用到循环)
declare
n1 number:=&n1;
n varchar2(100):=to_char(n1);
s number:=length(n);
str varchar2(100):='';
i number:=1;
begin
for i in reverse 1..s loop
str:=str||substr(n,i,1);
end loop;
dbms_output.put_line(str);
end;
--编写一个程序,在 EMP 表查找姓名为 ALLEN 员工,并获取 TOO_MANY_ROWS 和
--NO_DATA_FOUND 异常。
declare
myename emp.ename%type;
begin
select ename into myename from emp where ename='aLLEN';
dbms_output.put_line(''||myename);
exception
when TOO_MANY_ROWS then
dbms_output.put_line('记录过多');
when NO_DATA_FOUND then
dbms_output.put_line('无记录');
end;