示例PL / SQL程序
=====================
打印偶数1--100
BEGIN
FOR I IN 1..100 LOOP
--if the number is divisible by 2 then it is a even number.
IF MOD(I,2)=0 THEN
--display the number.
dbms_output.put_line(I);
END IF;
END LOOP;
END;
示例程序以反转数字
DECLARE
MNUM INTEGER;
MREV INTEGER:=0;
BEGIN
MNUM:=&MNUM;
WHILE(MNUM>0) LOOP
MREV:=MREV*10 +MOD(MNUM,10);
MNUM:=TRUNC(MNUM/10);
END LOOP;
DBMS_OUTPUT.PUT_LINE('THE REVERSE IS: '||MREV);
END;
显示使用XOR(异或)的示例程序
DECLARE
I BOOLEAN:=FALSE;
J BOOLEAN:=FALSE;
K BOOLEAN;
BEGIN
K:=XOR(I,J);
IF K=TRUE THEN
DBMS_OUTPUT.PUT_LINE('TRUE');
ELSE
DBMS_OUTPUT.PUT_LINE('FALSE');
END IF;
END;
显示使用EXECUTE IMMEDIATE的示例程序
declare
tablename varchar2(100):='&tablename';
rows_deleted number;
str varchar2(30);
begin
str := 'delete from ';
str :=str||tablename;
execute immediate str;
rows_deleted:=sql%rowcount;
dbms_output.put_line(to_char(rows_deleted));
end;
反向程序的示例程序
declare
i varchar2(20):='&i';
j varchar2(20);
k int;
l int;
begin
k:=length(i);
for l in reverse 1..k loop
j:=j||substr(i,l,1);
end loop;
dbms_output.put_line(j);
end;
示例程序以打印阿姆斯壮数字
DECLARE
A NUMBER;
B NUMBER;
BEGIN
FOR I IN 1..500 LOOP
A:=I;
B:=0;
LOOP
EXIT WHEN A<=0;
B:=B+POWER(MOD(A,10),3);
A:=TRUNC(A/10);
END LOOP;
IF B=I THEN
DBMS_OUTPUT.PUT_LINE(I||' IS ARMSTRONG NUMBER');
END IF;
END LOOP;
END;
一些样本代码
declare type nn is table of number index by pls_integer;
mm nn;
n number:=1;
s number:=1;
begin
for rec in (select empno from emp) loop
mm(n):=rec.empno;
n:=n+1;
end loop;
while s<n loop
dbms_output.put_line(mm(s));
s:=s+1;
end loop;
end ;
From: https://bytes.com/topic/oracle/insights/739015-oracle-pl-sql-9i-10g-sample-programs